【问题标题】:NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:oracle.oracledbNoSuchModuleError:无法加载插件:sqlalchemy.dialects:oracle.oracledb
【发布时间】:2023-01-17 17:29:45
【问题描述】:

当我尝试将 Oracle 服务器与 SQLAlchemy 连接时。我收到这个错误。

NoSuchModuleError:无法加载插件:sqlalchemy.dialects:oracle.oracledb

from sqlalchemy.engine import create_engine

DIALECT = 'oracle'
SQL_DRIVER = 'oracledb'
USERNAME = 'username' #enter your username
PASSWORD = 'password' #enter your password
HOST = 'host url' #enter the oracle db host url
PORT = 1533 # enter the oracle port number
SERVICE = 'service name' # enter the oracle db service name
ENGINE_PATH_WIN_AUTH = DIALECT + '+' + SQL_DRIVER + '://' + USERNAME + ':' + PASSWORD +'@' + HOST + ':' + str(PORT) + '/?service_name=' + SERVICE

engine = create_engine(ENGINE_PATH_WIN_AUTH)


#test query
import pandas as pd
test_df = pd.read_sql_query('SELECT * FROM global_name', engine)

任何不同的连接方法?

【问题讨论】:

  • 也许this page可以帮到你
  • SQLAlchemy 2.0 需要使用 python-oracledb——至少没有 gsalem 在页面上给出的指示。

标签: python oracle sqlalchemy python-oracledb


【解决方案1】:

为了完整起见(因为答案已经在 cmets 中):使用 SQLAlchemy 1.4 将其添加到您的顶级脚本文件中:

import sys
import oracledb
oracledb.version = "8.3.0"
sys.modules["cx_Oracle"] = oracledb

然后像使用 cx_Oracle 一样继续操作。

SQLAlchemy 2.0 不需要这个 sn-p

这些帖子是很好的参考:

【讨论】:

  • 感谢您的回复。我试过上面的方法。现在我得到DatabaseError: (oracledb.exceptions.DatabaseError) ORA-12537: TNS:connection closed
猜你喜欢
  • 2016-02-21
  • 2019-04-16
  • 2019-03-28
  • 2021-11-04
  • 2019-07-29
  • 2020-03-27
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多