立即执行的问题
我尝试使用“立即执行”运行下面的代码,但它不起作用并且值是正确的。
请建议正确的代码。
declare
v_count number:=1;
v_conc_name varchar2(400);
v_val VARCHAR2(20):='vineet';
BEGIN
v_conc_name:='INT_AP_PAY_CONV';
EXECUTE IMMEDIATE 'UPDATE xxx_cnc_prg_details
SET
PARAMETER'||v_count||'='
||v_val||' where CONCURRENT_PROGRAM_SHORT_NAME= '||v_conc_name;
end;
I am trying to run this code below using Execute Immediate but its not working and values are correct.
Please suggest the correct code.
declare
v_count number:=1;
v_conc_name varchar2(400);
v_val VARCHAR2(20):='vineet';
BEGIN
v_conc_name:='INT_AP_PAY_CONV';
EXECUTE IMMEDIATE 'UPDATE xxx_cnc_prg_details
SET
PARAMETER'||v_count||'='
||v_val||' where CONCURRENT_PROGRAM_SHORT_NAME= '||v_conc_name;
end;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用绑定变量要容易得多(也是更好的做法):
使用字符串变量来保存 SQL 也是一种方便的做法。然后可以使用DBMS_OUTPUT.PUT_LINE来查看和验证:
It's a lot easier (and better practice) to use bind variables:
It's also a handy practice to use a string variable to hold the SQL. Then you can use DBMS_OUTPUT.PUT_LINE to view and verify it:
似乎您错过了引号:
应该是:
因为 v_conc_name 是 varchar2
Seems you missed quotes:
should be:
because v_conc_name is varchar2
我会这样做:
I would do like this: