Как загрузить хранимую процедуру Java через JDBC в Oracle 10g? - PullRequest
3 голосов
/ 28 апреля 2009

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

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)

Я использую «executeUpdate» java.sql.Statement, передавая строку в первый блок кода.

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

1 Ответ

5 голосов
/ 28 апреля 2009

разобрался - нужно установить

statement.setEscapeProcessing(false);

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...