PLSQL中的SQL语句引用变量

画水 2014-05-19 03:31:02
各位大侠,下面的PLSQL语句里面,前面可以输出变量stockin_no的值,但是到后面更新的时候却为空了,不知道为什么,小弟第一次写PLSQL,帮个忙吧,谢谢

IF r1.DATA_TYPE = 'NML' AND r1.DATA_SOURCE = 'WMS' THEN
dbms_output.put_line('-----');
dbms_output.put_line(stockin_no);
dbms_output.put_line('-----');

UPDATE
PMS_TRN_SERIAL_LIST
SET
-- STOCKIN_NO = stockin_no,
-- STOCKIN_NO = 'shu',
STOCKIN_NO = nvl(trim(stockin_no),'sato'),
WMS_NYKA_SEND_FLG = '9',
WMS_NYKA_SEND_DATE = SYSDATE,
UPD_DATE = SYSDATE
WHERE
OWNER_CODE = r1.OWNER_CODE
AND
WAREHOUSE_CODE = r1.WAREHOUSE_CODE
AND
NYKA_PALLET_NO = r1.PALLET_NO
AND
WMS_NYKA_SEND_FLG = '0'
AND
RECEIPT_FLG = '3';
END IF;
...全文
494 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
chzjw254 2014-05-19
  • 打赏
  • 举报
回复
把变量名stockin_no换成别的名字试一试
画水 2014-05-19
  • 打赏
  • 举报
回复
引用 1 楼 zlloct 的回复:
[quote=引用 楼主 hwhzw02 的回复:] 各位大侠,下面的PLSQL语句里面,前面可以输出变量stockin_no的值,但是到后面更新的时候却为空了,不知道为什么,小弟第一次写PLSQL,帮个忙吧,谢谢 IF r1.DATA_TYPE = 'NML' AND r1.DATA_SOURCE = 'WMS' THEN dbms_output.put_line('-----'); dbms_output.put_line(stockin_no); dbms_output.put_line('-----'); UPDATE PMS_TRN_SERIAL_LIST SET -- STOCKIN_NO = stockin_no, -- STOCKIN_NO = 'shu', STOCKIN_NO = nvl(trim(stockin_no),'sato'), WMS_NYKA_SEND_FLG = '9', WMS_NYKA_SEND_DATE = SYSDATE, UPD_DATE = SYSDATE WHERE OWNER_CODE = r1.OWNER_CODE AND WAREHOUSE_CODE = r1.WAREHOUSE_CODE AND NYKA_PALLET_NO = r1.PALLET_NO AND WMS_NYKA_SEND_FLG = '0' AND RECEIPT_FLG = '3'; END IF;
看这段程序是没问题的。不知道你输出的变量值是什么?[/quote] dbms_output.put_line(stockin_no);这行是可以输出的,不为空。 但是到了下面update的STOCKIN_NO = nvl(trim(stockin_no),'sato'),就输出sato了。
CT_LXL 2014-05-19
  • 打赏
  • 举报
回复
引用 楼主 hwhzw02 的回复:
各位大侠,下面的PLSQL语句里面,前面可以输出变量stockin_no的值,但是到后面更新的时候却为空了,不知道为什么,小弟第一次写PLSQL,帮个忙吧,谢谢 IF r1.DATA_TYPE = 'NML' AND r1.DATA_SOURCE = 'WMS' THEN dbms_output.put_line('-----'); dbms_output.put_line(stockin_no); dbms_output.put_line('-----'); UPDATE PMS_TRN_SERIAL_LIST SET -- STOCKIN_NO = stockin_no, -- STOCKIN_NO = 'shu', STOCKIN_NO = nvl(trim(stockin_no),'sato'), WMS_NYKA_SEND_FLG = '9', WMS_NYKA_SEND_DATE = SYSDATE, UPD_DATE = SYSDATE WHERE OWNER_CODE = r1.OWNER_CODE AND WAREHOUSE_CODE = r1.WAREHOUSE_CODE AND NYKA_PALLET_NO = r1.PALLET_NO AND WMS_NYKA_SEND_FLG = '0' AND RECEIPT_FLG = '3'; END IF;
看这段程序是没问题的。不知道你输出的变量值是什么?

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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