Использование PL/SQL для вызова метода Java, который использует JDBC для подключения к базе данных сервера SQL

Я хотел бы иметь возможность соединить базу данных Oracle с базой данных сервера SQL. Я знаю о DG4ODBC и HSODBC, но я не могу использовать эти драйверы по нескольким причинам.

Я понимаю, что можно вызывать код Java из PL/SQL, как описано здесь http://download.oracle.com/docs/cd/B19306_01/java.102/b14187/chthree.htm

Я хочу написать процедуру PL/SQL, которая будет вызывать метод Java в хранимой процедуре Java. Обработка метода Java заключается в подключении к базе данных сервера SQL и вставке некоторых данных. Метод Java подключится к SQL Server с помощью драйвера JDBC, который будет расположен на сервере Unix, на котором будет работать Oracle.

Возможно ли вышеуказанное? Как определяется местоположение драйвера? Есть ли недостатки у вышеуказанного подхода? Какие-нибудь учебники или примеры можно найти где-нибудь?

2 ответа

Решение

Пока вы можете загрузить драйвер JDBC для SQL Server в базу данных Oracle с помощью утилиты loadjava, да, это должно быть возможно. Это будет зависеть от версии Oracle (разные версии базы данных имеют разные версии внутренней JVM) и версии JVM, которая требуется вашему драйверу JDBC для SQL Server, но я не ожидаю, что это будет слишком сложно. Если вы используете Oracle 10.2 (я полагаю, основываясь на версии Руководства разработчика Java, с которой вы связаны), вам просто нужно убедиться, что вы используете версию драйвера JDBC для SQL Server, совместимую с 1,4 JVM.

Это, несомненно, будет менее эффективным, чем использование гетерогенных сервисов и прозрачного шлюза для ODBC. И это, вероятно, довольно много работы для развития. Но это должно работать.

Если вам действительно нужно это сделать, вы можете попробовать загрузить драйвер jTDS в вашу базу данных через loadjava. Затем вы должны дать соответствующие разрешения с dbms_java.grant_permission,

Некоторые указатели:

http://forums.oracle.com/forums/thread.jspa?messageID=1102281 http://download.oracle.com/docs/cd/B19306_01/java.102/b14187/chthree.htm#CACJJHGI

Другие вопросы по тегам