2009-04-28 4 views
3

Я пытаюсь загрузить некоторые хранимые процедуры Java в базу данных Oracle 10g через JDBC. В заявлении я это выполнение -Как загрузить хранимую процедуру Java через JDBC в Oracle 10g?

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

Запуск этого через ЖАБА работает нормально, но при запуске через мой клиент 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's «executeUpdate» передает строку в первом блоке кода.

Можно загрузить источник java через JDBC?

ответ

5

Фигурные это - необходимость установить

statement.setEscapeProcessing(false); 

перед выполнением обновления. Это связано с тем, что исходный файл Java { и } символы неверно истолкованы как синтаксис вызова процедуры драйвером JDBC.