鉴于功能
DECLARE
TYPE t_ids IS TABLE OF PGD.ITEM_CHANGE.id%TYPE;
l_ids t_ids;
BEGIN
UPDATE PGD.ITEM_CHANGE
SET IN_PROCESS = 1
RETURNING id BULK COLLECT INTO l_ids;
COMMIT;
END;
如何匿名调用groovy(没有CREATE PROCEDURE)来保持L_IDS
?
我正在尝试将上面的内容放在String,PROC中,然后调用:
List<Object> params = [Sql.ARRAY]
sql.callWithRows(PROC, params) {
result ->
println result
}
我得到例外:
java.sql.SQLException: Invalid column index at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:125)
...
有人可以用这种语法帮助我吗?
答案 0 :(得分:0)
首先,你粘贴的东西不是PL / SQL函数。它是未命名的块,您无法从未命名的块中提取PL / SQL集合。
请使用RETURN语句将结果转换为存储函数,或使用OUT参数将其转换为程序。