【问题标题】:Calling Oracle Package from Grails从 Grails 调用 Oracle 包
【发布时间】:2013-02-05 21:35:44
【问题描述】:

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

sql.call '调用 myproc(param1,param2)'

当我尝试将相同的东西应用到一个包时:

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

我遇到了错误:ORA-06576: not a valid function or procedure name

有什么帮助吗?

谢谢!

【问题讨论】:

标签: oracle grails stored-procedures groovy


【解决方案1】:

试试这个语法:

sql.call '{call mypackage.myproc(?,?)}', [p1, p2]

如果是函数:

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

【讨论】:

  • {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,user,password); CallableStatement call = connection.prepareCall("{call mypkg.myproc(param1,param2)}"); call.executeQuery();
猜你喜欢
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-26
  • 1970-01-01
  • 2015-02-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多