【问题标题】:How to load Java Stored Procedure through JDBC into Oracle 10g?如何通过 JDBC 将 Java 存储过程加载到 Oracle 10g 中?
【发布时间】:2010-10-22 05:27:32
【问题描述】:

我正在尝试通过 JDBC 将一些 java 存储过程加载到 Oracle 10g 数据库中。我正在执行的语句是 -

CREATE OR REPLACE JAVA SOURCE NAMED "test.Test" AS
package test;
public class Test {
    public static String myMethod(String a) {
        return a;
    }
};

通过 TOAD 运行它可以正常工作,但是通过我的 JDBC 客户端运行时会出现以下错误 -

Exception in thread "Thread-3" java.lang.NullPointerException
        at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:728)
        at oracle.jdbc.driver.T4CStatement.execute_for_rows(T4CStatement.java:478)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1028)
        at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1451)
        at ejsdal.CreateDBJavaSQL.executeScript(CreateDBJavaSQL.java:23)
        at ejsdal.OperationController.run(OperationController.java:182)

我正在使用 java.sql.Statement 的“executeUpdate”传递第一个代码块中的字符串。

可以通过JDBC加载java源码吗?

【问题讨论】:

    标签: java oracle stored-procedures jdbc


    【解决方案1】:

    想通了 - 需要设置

    statement.setEscapeProcessing(false);
    

    在执行更新之前。这是因为 Java 源文件的 {} 字符被 JDBC 驱动程序误解为过程调用语法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 2012-08-09
      • 2011-07-08
      相关资源
      最近更新 更多