我试图通过从java代码调用过程从oracle数据库中读取数据。 如果我从sqldeveloper运行该过程,我可以看到该过程正在给我正确的输出。但是当我尝试使用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代码:
immagini/serie/covers/33.png
java.sql.SQLSyntaxErrorException:ORA-00900:无效的SQL语句
请告诉我上面的代码有什么问题。
答案 0 :(得分:0)
您错过了call
字符串中的qry
关键字。
String qry = "{call VISIONEMPLOYEES.Employees(?,?)}";
(见https://docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html)