帮我看看SP里的一条语句有什么错误?

fallstone 2002-09-02 09:18:52
set @s_sql = "update #b_czl_month set g_" + Ltrim(@grade_id) + "=" + convert(char(14),@weight_qty) + " Where prod_spec = '" + @prod_spec+"' and prod_name = '"+@prod_name + "'"
这样写没错

如果写为set @s_sql = "update #b_czl_month set g_" + Ltrim(@grade_id) + "=" + convert(char(14),@weight_qty) + ",chanzhi = " + convert(char(14),@chanzhi) + " Where prod_spec = '" + @prod_spec+"' and prod_name = '"+@prod_name + "'"

就错了。
在MSSQL里执行SP没有错误,只是没有返回值.
在PB里预览DW时就饱错(在')'附近有错误.
我不明白怎么回事,会不会因为@chanzhi 的值是空的?
...全文
37 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
fallstone 2002-09-16
  • 打赏
  • 举报
回复
我把这段搬到另一SP里好的。
所以我就换了方法做了。呵呵,谢谢大家。
jacksu19 2002-09-04
  • 打赏
  • 举报
回复
@chanzhi 的值是空的?
如果@chanzhi 的值是空的,那么整个字符串都变为空了啊,
所以在执行该赋值前,先检查各个参与的变量,如果为空,将其转为‘0’?

看如何?
WorldMobile 2002-09-04
  • 打赏
  • 举报
回复
如果第一句是正确的话,第二句没理由错,除非你的chanzhi是字符型的,你需要

加引号,否则没有理由错,如果不是引号的错误,请发个短消息给我正确答案

看一下到底是哪里出了问题
bzlj 2002-09-03
  • 打赏
  • 举报
回复
这种可以用MESSAGEbox看一下付值后@s_sql的值是什么,看是不是那里引号加错了。
hui_hui_lin 2002-09-03
  • 打赏
  • 举报
回复
楼上似乎只有一位嘛
老兄如此粗心
一般这类错误都是因为引号之类的问题
fallstone 2002-09-03
  • 打赏
  • 举报
回复
呵呵,实践证明上面写的是对的,错误在其它地方。有没人来拿分了呢?
这样就给楼上两位分不大甘心:)
balloonman2002 2002-09-02
  • 打赏
  • 举报
回复
因为 convert(char(14),@weight_qty)和convert(char(14),@chanzhi)返回的都是字符串,怎么能不加引号呢?
balloonman2002 2002-09-02
  • 打赏
  • 举报
回复
set @s_sql = "update #b_czl_month set g_" + Ltrim(@grade_id) + "='" + convert(char(14),@weight_qty) + "',chanzhi = '" + convert(char(14),@chanzhi) + "' Where prod_spec = '" + @prod_spec+"' and prod_name = '"+@prod_name + "'"

在CONVERT前后都加上单引号试试呢?

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧