Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/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
从Grails调用Oracle包_Oracle_Grails_Stored Procedures_Groovy - Fatal编程技术网

从Grails调用Oracle包

从Grails调用Oracle包,oracle,grails,stored-procedures,groovy,Oracle,Grails,Stored Procedures,Groovy,有没有办法在Oracle软件包中调用函数/过程? 我可以这样调用存储过程: sql.call“调用myproc(param1,param2)” 当我试图将同样的东西应用于一个包时: sql.call“调用mypackage.myfunction(param1,param2)” 我有错误:ORA-06576:不是有效的函数或过程名 有什么帮助吗 谢谢 试试这种语法: sql.call '{call mypackage.myproc(?,?)}', [p1, p2] 如果它是一个函数: sql.c

有没有办法在Oracle软件包中调用函数/过程? 我可以这样调用存储过程:

sql.call“调用myproc(param1,param2)”

当我试图将同样的东西应用于一个包时:

sql.call“调用mypackage.myfunction(param1,param2)”

我有错误:ORA-06576:不是有效的函数或过程名

有什么帮助吗

谢谢

试试这种语法:

sql.call '{call mypackage.myproc(?,?)}', [p1, p2]
如果它是一个函数:

sql.call '{? = call mypackage. myfunction(?,?)}', [result, p1, p2]
请尝试以下语法:

sql.call '{call mypackage.myproc(?,?)}', [p1, p2]
如果它是一个函数:

sql.call '{? = call mypackage. myfunction(?,?)}', [result, p1, p2]

请在“存储过程支持”部分下查看。再看看api,第一个链接就是我的例子。与软件包无关。我的猜测是,我必须直接通过“存储过程支持”部分下的Hibernate@JacobASeversonCheck来完成。再看看api,第一个链接就是我的例子。与软件包无关。我猜我必须直接通过Hibernate@JacobASeverson
{call mypackage.myproc(?,)},[param1,param2]
来完成,如果您连接到数据库的用户有权在该包中执行过程,从而在包之前添加模式名:'{call schema_name.mypackage.myproc(?)}它与模式无关,因为我可以通过java(而不是groovy)
Class.forName(“oracle.jdbc.OracleDriver”);String url=“jdbc:oracle:thin://localhost:port/xxx“String user=“username”String password=“passwd”Connection Connection=DriverManager.getConnection(url、用户、密码);CallableStatement call=connection.prepareCall(“{call mypkg.myproc(param1,param2)}”);call.executeQuery();
{call mypackage.myproc(?)},[param1,param2]
将输出相同的错误检查,如果您连接到DB的用户被授予在该包中执行过程的权限,请在包之前添加架构名称:{call schema_name.mypackage.myproc(?)}它与架构无关,因为我可以通过java(而不是groovy)
Class.forName运行它(“oracle.jdbc.OracleDriver”);字符串url=“jdbc:oracle:thin://localhost:port/xxx“String user=“username”String password=“passwd”Connection Connection=DriverManager.getConnection(url、用户、密码);CallableStatement call=Connection.prepareCall({call mypkg.myproc(param1、param2)});call.executeQuery();