使用过程从数据库中获取数据

时间:2016-02-14 15:23:16

标签: java stored-procedures plsql oracle11g

我试图通过从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语句

请告诉我上面的代码有什么问题。

1 个答案:

答案 0 :(得分:0)

您错过了call字符串中的qry关键字。

String qry = "{call VISIONEMPLOYEES.Employees(?,?)}";

(见https://docs.oracle.com/javase/7/docs/api/java/sql/CallableStatement.html