Register CLOB fail or no

316
08 августа 2017, 14:31

Есть такой вопрос. У меня в базе есть пакет с функцией, который возвращает CLOB. И мне нужно зарегистрировать в java clob для возвращаемого значения. Делаю по логике я все правильно. Подскажите как можно просмотреть зарегистрировался ли CLOB?

QueryWithResultAsClob = "{ ? = call FindPackage.findkartoteka('child.municid in(''{BA986261-AC49-4F7B-AC0D-8B4A6AFD9364}'',''{FE00E848-55B3-4E7F-8E15-8DB24F132A45}'')',0,1,2,1)}" 
cp30NativeJdbcExtractor = new C3P0NativeJdbcExtractor();
connection = (OracleConnection) cp30NativeJdbcExtractor.getNativeConnection(Session.connection());
OracleCall = (OracleCallableStatement) connection.prepareCall(QueryWithResultAsClob);
OracleCall.registerOutParameter(1, Types.CLOB);

Вот параметры функции:

function FINDKARTOTEKA
  (
    MunObr IN CLOB, 
    KindFindKartoteka in INT,
    AllOrAny in number,
    ShowArchive in int,
    UserFindLogin in varchar2    
  )return CLOB

Так же я залез дальше по исходному коду и в конструкции switch case нет case для размера CLOB типа. Может ли в этом быть проблема так же?

Не обращайте внимание на именование переменных. Досталось от прошлого разработчика, пока пытаюсь запустить его код. Заранее спасибо за помощь.

Answer 1

Если исключение не выбрасывается, то параметр зарегистрирован.

По идее в vanilla JDBC возвращаемый параметр не может иметь тип Types.CLOB и вы должны получить SQLFeatureNotSupportedException:

Throws: SQLFeatureNotSupportedException - if sqlType is a ARRAY, BLOB, CLOB, DATALINK, JAVA_OBJECT, NCHAR, NCLOB, NVARCHAR, LONGNVARCHAR, REF, ROWID, SQLXML or STRUCT data type and the JDBC driver does not support this data type

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

READ ALSO
Разбор XML и вывод в Excel

Разбор XML и вывод в Excel

Есть XML файл с таким содержимымСтрок ROW много

407
Настройка SQL запросов в Hibernate

Настройка SQL запросов в Hibernate

Добрый день, разрабатываю систему отчетности в виде web-приложенияИспользую Spring и Hibernate

315
Redirect:/ После авторизации Spring java

Redirect:/ После авторизации Spring java

На сайте система авторизацииSpring security

280
Микросервисная архитектура Java

Микросервисная архитектура Java

Посредством чего или с помощью чего взаимодействует один микросервис с другим?

434