如何用docker连接oracle db

问题描述 投票:0回答:1

我在 python docker 容器中安装了 cx_oracle,在连接 oracle db 后出现此错误

创建数据库时发生错误:(builtins.NoneType) None [SQL:(cx_Oracle.DatabaseError) DPI-1047:无法找到 64 位 Oracle 客户端库:“libclntsh.so:无法打开共享对象文件:没有这样的文件或目录”。请参阅 https://cx-oracle.readthedocs.io/en/latest/user_guide/installation.html 获取帮助 (此错误的背景位于:https://sqlalche.me/e/14/4xp6)] (此错误的背景位于:https://sqlalche.me/e/14/dbapi

请看一下

与docker连接oracle数据库,并在docker终端执行python oracle连接代码。

导入cx_Oracle

连接 = cx_Oracle.connect('admin/[email protected]:1521/DATABASE') cur = 连接.cursor()

docker-compose oracle11g cx-oracle apache-superset python-oracledb
1个回答
0
投票

根据您的错误消息,您可能缺少 Oracle 客户端库 Oracle Instant Client。 新的主要 Python cx_Oracle 驱动程序版本可作为

python-oracledb
获得,并且不需要 Oracle 客户端库。

安装和使用 python-oracledb:

python -m pip install oracledb

Dockerfile:

FROM apache/superset:2.1.0
RUN pip install oracledb

使用以下方法测试与 Oracle 的连接:

import oracledb
    
connection = oracledb.connect(user='scott', password=secretpw, dsn='localhost/oraclepdb1')
    
with connection.cursor() as cursor:
  for row in cursor.execute('select * from dual'):
    print(row)

更多信息请参见:将 Oracle Instant 客户端安装到 Python cx_Oracle 的 Docker 容器中

© www.soinside.com 2019 - 2024. All rights reserved.