понедельник, 16 августа 2021 г.

Python: последовательное подключение к СУБД Oracle, затем PostgreSQL

 Попытка подключения сначала к СУБД Oracle, а затем к PostgreSQL в таком виде:

import jaydebeapi

...

jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', ora_url, [db_username, ora_password], './ojdbc6.jar')

jaydebeapi.connect('org.postgresql.Driver', pg_url, [pg_user, pg_password], './postgresql-42.2.1.jar')

приводит к ошибке:

TypeError: Class org.postgresql.Driver is not found


Решение: предварительно загрузить JDBC-драйвер СУБД PosgreSQL в экземпляр JVM - см. строку "jpype.startJVM(... classpath=...":

import jaydebeapi

import jpype

...

jHome = jpype.getDefaultJVMPath()

jpype.startJVM(jHome, classpath=['./ojdbc6.jar','./postgresql-42.2.1.jar'])


jaydebeapi.connect('oracle.jdbc.driver.OracleDriver', ora_url, [db_username, ora_password], './ojdbc6.jar')

jaydebeapi.connect('org.postgresql.Driver', pg_url, [pg_user, pg_password], './postgresql-42.2.1.jar')


jpype.shutdownJVM()

Комментариев нет:

Архив