调用存储过程,提示:从数据类型 nvarchar 转换为 float 时出错。 请问哪里的错?(不好意思没分了)

\u8c03\u7528\u5b58\u50a8\u8fc7\u7a0b\uff0c\u63d0\u793a\uff1a\u4ece\u6570\u636e\u7c7b\u578b nvarchar \u8f6c\u6362\u4e3a float \u65f6\u51fa\u9519\u3002 \u8bf7\u95ee\u54ea\u91cc\u7684\u9519\uff1f\uff08\u4e0d\u597d\u610f\u601d\u6ca1\u5206\u4e86\uff09

\u51fd\u6570\u7528\u9519\u4e86
str\u662f \u8fd4\u56de\u4ece\u6570\u5b57\u6570\u636e\u8f6c\u6362\u800c\u6210\u7684\u5b57\u7b26\u6570\u636e\u3002\u800c\u4f60\u58f0\u660e\u7684\u662fnvarchar,\u5e76\u4e14\u4f20\u5165\u7684\u53c2\u6570\u662f'41e620ee-b34c-499c-b0e6-fc454583e63f',\u6211\u60f3\u4f60\u7684\u610f\u601d\u662f\u60f3\u8f6c\u6362\u6210\u5b57\u7b26\u578b\u6570\u636e\u5427
\u5c06str(@StartNum) \u66ff\u6362\u6210cast (@ChannelID as nvarchar)

\u4f60\u628a\u4e09\u4e2a\u5c5e\u6027\u6bcf\u4e00\u4e2a\u90fd\u5355\u72ec\u8bd5\u4e00\u4e0b \u770b\u54ea\u4e2a\u51fa\u7684\u95ee\u9898\u3002
\u5c31\u662f\u6570\u636e\u8f6c\u6362\u95ee\u9898
small trouble

先看看STR函数的说明:
语法
STR ( float_expression [ , length [ , decimal ] ] )
参数
float_expression
是带小数点的近似数字 (float) 数据类型的表达式。不要在 STR 函数中将函数或子查询用作 float_expression。
length
是总长度,包括小数点、符号、数字或空格。默认值为 10。
decimal
是小数点右边的位数。

你的@channelID这个变量,本身就是NVARCHAR类型,而你又使用STR函数转化,这里要求STR里面的参数是FLOAT类型的,所以错误在这。使用这个函数,因为参数是FLOAT,所以这里要先把你的变量转成FLOAT,所以就报错了。
set @strSql=@strSql+ ' AND A.ChannelID in (select ChannelID from BASChannel where ParantID='''+str(@ChannelID)+'''or ChannelID='''+str(@ChannelID)+''')';
问题就在上面这句,不需要str函数转化,直接拼就好了。
另外,你调用的时候应该是笔误写错了吧,2011-07-31,后边一半缺少了单引号。
还有,最后一个拼接
set @strSql=@strSql+') as a where rowNum between'+str(@StartNum)+' and'''+str(@EndNum)+'';
你看看这句,最后的单引号拼接是否有误,你看看and后边的单引号,这个地方肯定匹配不上了.
你可以在存储过程中,没拼接完一段之后加上这句print @strsql,把字符串输出,看看语句有没有问题,一目了然。看看最后的and,是不是在and 的后边多了一个单引号?

  • SQL 瀛樺偍杩囩▼ 鍑洪敊: 浠庢暟鎹被鍨 nvarchar 杞崲涓 float 鏃跺嚭閿欍俖鐧...
    绛旓細str鏄 杩斿洖浠庢暟瀛鏁版嵁杞崲鑰屾垚鐨勫瓧绗︽暟鎹傝屼綘澹版槑鐨勬槸nvarchar,骞朵笖浼犲叆鐨勫弬鏁版槸'41e620ee-b34c-499c-b0e6-fc454583e63f',鎴戞兂浣犵殑鎰忔濇槸鎯宠浆鎹㈡垚瀛楃鍨嬫暟鎹惂 灏唖tr(@StartNum) 鏇挎崲鎴恈ast (@ChannelID as nvarchar)銆俢reate table #(f float, i int)declare @f float, @i int, @sql ...
  • 璋冪敤瀛樺偍杩囩▼,鎻愮ず:浠庢暟鎹被鍨 nvarchar 杞崲涓 float 鏃跺嚭閿欍 璇...
    绛旓細鏄皬鏁扮偣鍙宠竟鐨勪綅鏁般備綘鐨凘channelID杩欎釜鍙橀噺锛屾湰韬氨鏄疦VARCHAR绫诲瀷锛鑰屼綘鍙堜娇鐢⊿TR鍑芥暟杞寲锛岃繖閲岃姹係TR閲岄潰鐨勫弬鏁版槸FLOAT绫诲瀷鐨勶紝鎵浠ラ敊璇湪杩欍備娇鐢ㄨ繖涓嚱鏁帮紝鍥犱负鍙傛暟鏄疐LOAT锛屾墍浠ヨ繖閲岃鍏堟妸浣犵殑鍙橀噺杞垚FLOAT锛屾墍浠ュ氨鎶ラ敊浜嗐俿et @strSql=@strSql+ ' AND A.ChannelID in (select ChannelID from...
  • .NET C#璋冪敤瀛樺偍杩囩▼鎶ラ敊! adapter.Fill(ds, "a"); 鎶ラ敊! 浠庢暟鎹被鍨...
    绛旓細鎶瀛樺偍杩囩▼鐨勪袱涓椂闂村弬鏁颁竴鏍锋敼鎴恦archar锛岀劧鍚庢妸浣犵殑strstartdate鐢ㄦ爣鍑嗘牸寮忎紶鍏ユ瘮濡俿trstartdate.tostring("yyyy-MM-dd hh:mm:ss")杩欑锛屽鏋滈渶瑕佸弬鏁拌浆鎹紝鍦ㄥ瓨鍌ㄨ繃绋嬩腑鐢ㄦ暟鎹簱鐨勮浆鎹㈠嚱鏁版潵杞崲鏃堕棿鏍煎紡銆
  • 涓嬮潰瀛樺偍杩囩▼,瀹氫箟娓告爣,鍝噷鐨勯敊?鎻愮ず鈥滃弬鏁鏁版嵁绫诲瀷 varchar 瀵逛簬 conv...
    绛旓細CONVERT(varchar(10),@Today,120) and CONVERT(varchar(10),@endtime,120)
  • 姹俹racle楂樻墜,瀛樺偍杩囩▼涓彇娓告爣鍊兼椂,鍑虹幇鏁版嵁绫诲瀷涓嶄竴鑷撮棶棰,鎬ユ
    绛旓細瀵硅薄绫诲瀷鍦ㄨ繖閲屼笉鑳界洿鎺ヨ祴鍊硷紝浣犱篃鍙互浣跨敤涓涓鍚堢被鍨嬪幓瀹氫箟鍙橀噺姣斿锛歝reate or replace type emp_rec is record (item1 number,item2 number );emp emp_rec;鐒跺悗 鍐峟etch emp_cv into emp; 杩欓噷鍙橀噺椤哄簭蹇呴』涓庢父鏍囧瓧娈甸『搴忎竴鑷达紱...
  • C#璋冪敤瀛樺偍杩囩▼鍙傛暟闂浠ュ強鍙傛暟鍊间粠Sqlparameter杞崲鍒癝tring澶辫触鐨...
    绛旓細杩樻槸鏁版嵁璋冪敤鐨勯棶棰,灏辨槸鏁版嵁绫诲瀷涓嶅尮閰,浠旂粏鐪嬩竴涓嬪惂,涓棿鏈夋病鏈夋暟鍊艰浆鎹㈢殑鎿嶄綔.涓嶄竴瀹氬氨鏄嚭閿欑殑浣嶇疆鐨勯棶棰.璁句竴涓柇鐐,涓姝ヤ竴姝ヨ皟,妫鏌ユ瘡涓姝ュ彉閲忓肩殑鍙樺寲,浠旂粏瑙傚療姣忎竴姝ュ嚭鐜扮殑鎻愮ず鍜屼綘棰勬兂鏄惁涓鏍.
  • 璋佸府蹇欑湅涓涓嬩笅闈㈣繖涓瀛樺偍杩囩▼鍟,鎴戝湪杩愯鐨勬椂鍊鎻愮ず鈥滀笉鍏佽鏁版嵁绫诲瀷da...
    绛旓細鍏跺疄鏈変簡閿欒鎻愮ず锛闂灏辩畝鍗曞浜嗭紝浣犲彲浠ュ厛璇曡瘯鍚庨潰鐨剆elect鏌ヨ鏈夋病鏈夐棶棰橈紝濡傛灉娌℃湁锛岄偅涔堝氨鏈夊彲鑳芥槸select 璇彞涓殑鏁版嵁婧愭牸寮忓拰浣犺鎻掑叆鐨勮〃鐨勬牸寮忎笉鐩哥銆
  • c# 浠庢暟鎹被鍨 numeric 杞崲涓 decimal 鏃跺嚭閿欍
    绛旓細decimal(6,2)瀹氫箟鐨勯暱搴﹀皬浜庝綘杈撳叆鐨鏁版嵁鐨勯暱搴,6鏄婚暱搴﹀苟涓嶆槸鏁存暟閮ㄥ垎闀垮害,2鏄皬鏁扮偣浣嶆暟,灏忔暟鐐瑰崰涓浣 decimal(鎬婚暱搴(鍚皬鏁扮偣鍜屽皬鏁颁綅鏁),灏忔暟浣嶆暟)鏀逛负decimal(9,2)璇曚笅
  • 瀛樺偍杩囩▼:鍦ㄥ皢 nvarchar 鍊 '鍚堣' 杞崲鎴鏁版嵁绫诲瀷 int 鏃跺け璐ャ ==...
    绛旓細灏 nvarchar 鍊 '鍚堣' 杞崲鎴鏁版嵁绫诲瀷 int 鏃跺け璐ワ細 杩欑鎯呭喌涓鑸槸浣犵殑鏁版嵁瀛樺湪闈鏁板肩被鍨鐨勫硷紝渚嬪姹夊瓧銆佺┖鏍肩瓑
  • 璋冪敤瀛樺偍杩囩▼杩斿洖浠涔绫诲瀷
    绛旓細闅忎究锛岃嚜瀹氫箟out鍙橀噺銆傚彲浠ユ槸浠讳綍鏁版嵁绫诲瀷銆
  • 扩展阅读:对象存储 ... oracle 调用存储过程 ... 数据存储的三种方式 ... mybatis 调用存储过程 ... 调用存储过程的命令 ... 数据库存储过程怎么写 ... 用什么调用存储过程 ... 数据库调用存储过程 ... 调用存储过程的方法 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网