Oracle 在Groovy中使用OUT参数调用匿名PL/SQL
给定函数Oracle 在Groovy中使用OUT参数调用匿名PL/SQL,oracle,groovy,Oracle,Groovy,给定函数 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中匿名调用它(无需创建过程)以获得L_id 我尝试将上述内容放入字符串PROC中,然后调用: List
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中匿名调用它(无需创建过程)以获得L_id
我尝试将上述内容放入字符串PROC中,然后调用:
List<Object> params = [Sql.ARRAY]
sql.callWithRows(PROC, params) {
result ->
println result
}
有人能帮我解释一下这个语法吗?首先,您粘贴的不是PL/SQL函数。它是未命名块,无法从未命名块中提取PL/SQL集合
请将其转换为结尾带有RETURN语句的存储函数或带有OUT参数的过程。是的,这是可能的。祝你好运,谢谢。有没有一种方法可以在传递给JDBC的SQL字符串中完成这一切,而无需明确调用CREATE PROCEDURE或CREATE函数?我没有创建过程权限。
java.sql.SQLException: Invalid column index at oracle.jdbc.driver.OracleCallableStatement.registerOutParameterInternal(OracleCallableStatement.java:125)
...