ORA-00932: несовместимые типы данных: ожидается SYS.AQ $ _JMS_TEXT_MESSAGE получил SYS.AQ $ _JMS_TEXT_MESSAGE - PullRequest
0 голосов
/ 07 ноября 2018

С более новой версией БД Oracle (12.2.0.1) мы начинаем получать ORA-00932 для кода, который хорошо работает со старым сервером БД. Более того, водитель сообщает о странной детали исключения:

ORA-00932: несовместимые типы данных: ожидается SYS.AQ $ _JMS_TEXT_MESSAGE получил SYS.AQ $ _JMS_TEXT_MESSAGE

вы можете видеть, что ожидаемые и полученные имена типов совпадают.

Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-00932: inconsistent datatypes: expected SYS.AQ$_JMS_TEXT_MESSAGE got SYS.AQ$_JMS_TEXT_MESSAGE
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:389)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:382)
        at oracle.jdbc.driver.T4CTTIfun.processError(T4CTTIfun.java:600)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
        at oracle.jdbc.driver.T4Caqe.doOAQEQ(T4Caqe.java:355)
        at oracle.jdbc.driver.T4CConnection.doEnqueue(T4CConnection.java:3938)
        at oracle.jdbc.driver.PhysicalConnection.enqueue(PhysicalConnection.java:10076)
        at oracle.jms.AQjmsProducer.jdbcEnqueue(AQjmsProducer.java:1096)
        ... 13 more

Проблема возникла из автономного Java-приложения, использующего следующие библиотеки драйверов AQ:

aqapi.jar;javax.jms_1.1.4.jar;jta-1.1.jar

Используемая версия драйвера ojdbc:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.6.5
Created-By: 1.5.0_30-b03 (Sun Microsystems Inc.)
Implementation-Vendor: Oracle Corporation
Implementation-Title: JDBC
Implementation-Version: 11.2.0.3.0
Repository-Id: JAVAVM_11.2.0.3.0_LINUX_110823
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Specification-Version: 4.0
Main-Class: oracle.jdbc.OracleDriver
sealed: true

1 Ответ

0 голосов
/ 12 ноября 2018

Когда мы начали использовать ту же версию драйвера jdbc, что и сервер БД Oracle:

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.1
Implementation-Title: JDBC
Implementation-Version: 12.2.0.1.0
sealed: true
Repository-Id: JAVAVM_12.2.0.1.0_LINUX.X64_161213
Specification-Vendor: Sun Microsystems Inc.
Specification-Title: JDBC
Created-By: 25.91-b14 (Oracle Corporation)
Specification-Version: 4.0
Implementation-Vendor: Oracle Corporation
Main-Class: oracle.jdbc.OracleDriver

AQ JMS драйвер начинает работать хорошо. Я не могу найти в документации Oracle примечание, что драйвер 11.2 jdbc несовместим с сервером 12.2 ORA DB, даже не для реализации AQ JMS (aqapi.jar).

...