动态SQL变量联编小问题!*求助* v_delString := 'Delete ' || p_table || ' where ID IN ('||p_id||')';gb_maintain.main('Delete','GB_NJSL1','aaa','''79'',''80'''); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试gb_maintain.main('Delete','GB_NJSL1','aaa','79'||','||'80'); to beckhambobo(beckham): OK了!但我有个疑问,动态SQL不是要联编输入变量的吗?为什么这样写: v_delString := 'Delete ' || p_table || ' where ID IN (:ID)'; DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);就怎么也梆定不了变量呢?TO Lastdrop(空杯) : p_number:=DBMS_SQL.Execute(v_CursorID); 这行过不去!:( 估计是梆定的时候识别不出来,我在过程里直接写DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID','80,76');都不行,不知道为什么?目前我的问题已解决,望求甚解,请高手明示!:) 新发现: v_delString := 'Delete ' || p_table || ' where ID IN (:ID)'; DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);当表中记录为空的时候 gb_maintain.main('Delete','GB_NJSL1','aaa','79,80');可以成功执行!只要有记录就不行!为啥??? 你把 COMMIT; --Close the curse DBMS_SQL.CLOSE_CURSOR(v_CursorID);这两句的顺序调一下试试。 --Close the curse DBMS_SQL.CLOSE_CURSOR(v_CursorID); COMMIT; 绑定变量与“当表中记录为空的时候 gb_maintain.main('Delete','GB_NJSL1','aaa','79,80');可以成功执行!只要有记录就不行!”有关吗? 不知道,反正DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);怎么也过不去?只有当表中没记录时可以,所以我也糊涂了!我在过程里DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',97,98);它都不报错,只梆定了97,98就不管了,语句照样执行,真怪! 今天感谢beckhambobo(beckham)和Lastdrop(空杯),既然问题解决了,我先结贴,如果Lastdrop(空杯)对这个问题还感兴趣,我有什么新发现,会给你发短信息的!感谢二位~ :) 求个功能实现..... 是高手的来解决下这问题(Oracle分段时间查询) 小弟明天回家了,散分! 各位兄弟快来接分吧 ¥¥¥$$$ 请问程序中如何读取Tnsname.ora文件? 问几个Oracle基本问题 请教oracle的clob问题,不能保存 为什么过程中使用变量就执行不了,而将值写出来就可以执行? 让oracle自动生成指定格式的编号,如何实现?要求使用触发器 在oracle中如何像sql server中的代理一样,能设置计划执行Sql命令 PL/SQL如何读取BLOB字段?谢谢! Linux下OCI编程请教。 请教各位做开发的大虾,关于analyze
gb_maintain.main('Delete','GB_NJSL1','aaa','79'||','||'80');
OK了!但我有个疑问,动态SQL不是要联编输入变量的吗?为什么这样写:
v_delString := 'Delete ' || p_table || ' where ID IN (:ID)';
DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);
就怎么也梆定不了变量呢?TO Lastdrop(空杯) : p_number:=DBMS_SQL.Execute(v_CursorID); 这行过不去!:(
估计是梆定的时候识别不出来,我在过程里直接写
DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID','80,76');
都不行,不知道为什么?
目前我的问题已解决,望求甚解,请高手明示!:)
v_delString := 'Delete ' || p_table || ' where ID IN (:ID)';
DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);当表中记录为空的时候 gb_maintain.main('Delete','GB_NJSL1','aaa','79,80');
可以成功执行!只要有记录就不行!为啥???
COMMIT;
--Close the curse
DBMS_SQL.CLOSE_CURSOR(v_CursorID);
这两句的顺序调一下试试。
--Close the curse
DBMS_SQL.CLOSE_CURSOR(v_CursorID);
COMMIT;
“当表中记录为空的时候 gb_maintain.main('Delete','GB_NJSL1','aaa','79,80');
可以成功执行!只要有记录就不行!”有关吗?
DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',p_id);
怎么也过不去?只有当表中没记录时可以,所以我也糊涂了!
我在过程里DBMS_SQL.BIND_VARIABLE(v_CursorID,':ID',97,98);
它都不报错,只梆定了97,98就不管了,语句照样执行,真怪!
感谢二位~ :)