【发布时间】:2015-08-27 15:03:21
【问题描述】:
我有一个存储函数设置如下:
CREATE OR REPLACE PACKAGE PACKAGENAME IS
FUNCTION READ_FUNC(i_name IN VARCHAR2)
RETURN SYS_REFCURSOR;
END PACKAGENAME;
/
CREATE OR REPLACE PACKAGE BODY PACKAGENAME AS
FUNCTION
READ_FUNC(i_name IN VARCHAR2)
RETURN SYS_REFCURSOR
IS
cursor SYS_REFCURSOR;
BEGIN
//do stuff
RETURN cursor;
END READ_FUNC;
我试图在 Java 中如下调用它,但我得到了not a valid function or procedure name
try(CallableStatement stmt = conn.prepareCall("call PACKAGENAME.READ_FUNC(?)")
{
stmt.setString(1, name);
ResultSet result = stmt.executeQuery();
// do stuff with result
}
它肯定存在,因为我可以desc PACKAGENAME 并且它有我的功能。我还能够调用其他程序。有谁知道我做错了什么?
【问题讨论】:
标签: java sql plsql cursor stored-functions