Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 在Groovy中使用OUT参数调用匿名PL/SQL_Oracle_Groovy - Fatal编程技术网

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)
...