2017-02-14 3 views
0

У меня есть JDBC PreparedStatement с помощью параметра связываниявызов Binding функции с использованием JDBC

, например:

insert into CLOB_COLUMN values (?) 

Я хотел бы использовать empty_clob() и связать его с параметром, то я могу сделать что-то например

if(foo){ 
    statement.setClob("something"); 
else{ 
    statement.setfunction("empty_clob()") 
} 

Поддерживает ли JDBC это? Я чувствую, что это обычный случай использования, и я что-то упускаю. Я не вижу способа привязать функцию к параметру в подготовленном операторе и не могу найти что-либо в документации, пытаясь как строка, она просто добавляет строку «empty_clob()» в столбец строки.

В качестве примечания стороны (для конкретного случая использования, но не вопрос, я знаю statement.setClob(Clob.getEmptyClob()), действительно ли это активирует empty_clob() под листами в оракуле? Или он создает пустой объект clob, который имеет собственное местоположение в табличном пространстве, а не указывает на универсальность, используемую в функции?

+0

Возможный дубликат [Вызов функции Oracle из Java] (http://stackoverflow.com/questions/13158212/call-an-oracle-function-from-java) – OldProgrammer

ответ

2

Нет, JDBC не поддерживает что-то вроде этого. Вы можете устанавливать значения только с помощью параметров привязки, ничего больше.

Что касается Вашего второго вопроса: Там нет java.sql.Clob.getEmptyClob(), поэтому, возможно, вы говорите о Oracle определенным расширением oracle.sql.CLOB.getEmptyCLOB() вместо, чья документация только говорит:

возвращающие пустой нескладный. Пустая лоб используется для инициализации столбца/атрибута LOB. Примечание: пустой лоток нельзя прочитать или записать

Обратите внимание, что этот метод устарел.

Смежные вопросы