动态sql问题,有错误提示

student7007 2004-11-30 05:49:27
这样写后,错误提示是
declare
ac_qfny varchar2(10):='qf12';
ac_dw varchar2(4):='C6';
begin

execute immediate 'update jczj_c_dfxx a set ysdf= (select '||ac_qfny ||'
from dq.dfsqf b where a.hh=b.hh) where dw='||ac_dw;

end;
/
ORA-00904: "C6": 无效的标识符
ORA-06512: 在line 6
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wangybyangxr 2004-12-03
  • 打赏
  • 举报
回复
这里有些问题:
from dq.dfsqf b where a.hh=b.hh) where dw='||ac_dw;
改为以下:
from dq.dfsqf b where a.hh=b.hh) where dw='|| ''' || ac_dw || ''';

说明:
应该把 C6 用'号括起来,

qiaozhiwei 2004-11-30
  • 打赏
  • 举报
回复
试试这个:
declare
ac_qfny varchar2(10):='qf12';
ac_dw varchar2(4):='C6';
v_sql_string varchar2(500);
begin
v_sql_string := 'update jczj_c_dfxx a set ysdf=(select '||ac_qfny ||'from
dq.dfsqf b where a.hh=b.hh) where dw=:v1';

execute immediate v_sql_string USING ac_dw;

end;
/

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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