在存储过程中使用动态sql遇到了下述问题,向各位大佬求教……这个问题中的过程,在10G中运行没有问题,但是现在数据库升级了后,就产生了问题。
数据库版本12.1.0.2.0
我在存储过程中,使用了动态sql,目的是统计数据。动态sql大概如下,prm_con 是入参,
SELECT SEQ_table_1_ACE100.NEXTVAL INTO V_ACE100 FROM DUAL;
v_sql := 'insert into table1
select t2.columns1,
t2.columns2,
:1,
ROW_NUMBER() OVER(ORDER BY columns1) AS XH
from table2 t2,view1 v1
where t2.columns3 = v1.columns3
and ' || prm_con;
EXECUTE IMMEDIATE V_SQL USING v_ace100;
问题是这段sql,执行后, ROW_NUMBER()产生的数值没有写入到表中。而这段sql如果我自己直接执行,是可以插入的。
下面的截图是调试过程的结果
下面的截图是手动执行sql的结果