Java 使用过程从数据库中获取数据
我试图通过调用java代码中的过程从oracle数据库读取数据。 如果我从sqldeveloper运行这个过程,我可以看到这个过程给了我正确的输出,但是当我尝试使用java程序运行时,我得到了错误 程序:Java 使用过程从数据库中获取数据,java,stored-procedures,plsql,oracle11g,Java,Stored Procedures,Plsql,Oracle11g,我试图通过调用java代码中的过程从oracle数据库读取数据。 如果我从sqldeveloper运行这个过程,我可以看到这个过程给了我正确的输出,但是当我尝试使用java程序运行时,我得到了错误 程序: CREATE OR REPLACE PACKAGE BODY VISIONEMPLOYEES AS PROCEDURE Employees( p_id IN NUMBER, p_ref_cursor OUT sys_refcursor )
CREATE OR REPLACE PACKAGE BODY VISIONEMPLOYEES AS
PROCEDURE Employees(
p_id IN NUMBER,
p_ref_cursor OUT sys_refcursor )
AS
BEGIN
OPEN p_ref_cursor FOR
SELECT id, name, age FROM emp WHERE id = p_id;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
RAISE;
END Employees;
END VISIONEMPLOYEES;
Java代码:
public static void callOracleStoredProcOUTParameter()
{
Connection conn = null;
Statement stmt = null;
CallableStatement cb = null;
String qry = "{VISIONEMPLOYEES.Employees(?,?)}";
try {
conn = getDbConnection();
cb = conn.prepareCall(qry);
cb.setInt(1, 1);
cb.registerOutParameter(2, OracleTypes.CURSOR);
cb.executeUpdate();
String userName = cb.getString(2);
System.out.println("UserName is : " + userName);
} catch (Exception e) {
System.out.println(e);
}
}
java.sql.SQLSyntaxErrorException:ORA-00900:无效的sql语句
请告诉我上面写的代码有什么问题。您的
qry
字符串中缺少call
关键字
String qry = "{call VISIONEMPLOYEES.Employees(?,?)}";
(请参阅)您的
qry
字符串中缺少call
关键字
String qry = "{call VISIONEMPLOYEES.Employees(?,?)}";
(请参见)向我们展示运行过程所用的代码以及运行代码时所遇到的错误。向我们展示运行过程所用的代码以及运行代码时所遇到的错误。