假设存储过程名字SP_TEST,一个参数v_SQL,是sql语句
存储过程内容:
v_id number;
v_id := 11111; --这个可能事动态从表取得的值
execute immediate v_SQL;在Java代码中组合参数:
sql = "insert into b (id,code) values(1,'||v_id||')";执行存储过程,这个时候存储过程把v_id看做一个字符串而不是存储过程变量这个问题该怎么解决?
存储过程内容:
v_id number;
v_id := 11111; --这个可能事动态从表取得的值
execute immediate v_SQL;在Java代码中组合参数:
sql = "insert into b (id,code) values(1,'||v_id||')";执行存储过程,这个时候存储过程把v_id看做一个字符串而不是存储过程变量这个问题该怎么解决?
解决方案 »
- 触发器无效 或未通过验证,实在没办法了,帮帮忙
- JSP连接ORACLE的双机服务器,为什么很不稳定呢?
- 菜鸟提问有关oracle数据类型
- oracle插不见数据
- 求一条sql语句更新某一已存在内容的字段,新内容加在原有内容后,之间用|隔开,如何写?谢谢
- blob字段处理
- 在一個表中重復查詢中一個fields對應多個value的問題 急急急(分不夠再開貼給分) 先謝了
- oracle8.1.7 for windows2000 family server?
- 有关多线程的问题!!!
- 这个查重的sql语句怎么写呢
- Oracle的行列转换怎么写?
- 关于ORA-01555 rollback_segments 请教 解决立即 送分
1。存储过程参数只传变量值,存储过程拼sql字符串。
2。java拼完整的sqll字符串,之后把完整字符串作为变量传给存储过程。很多东西可以变通的。能完成就ok了。
在prodedure中跟其中的变量重新组合,不就解决了吗.
在procedure中通过变量替换:把传过来的sql字符串进行对于变量的替换,类似replace(str,替代变量字符串,变量值)。
转换完成后,再execute immediate sql;