python连接oracle数据库

本文介绍了Python使用PyCharm连接Oracle数据库的方法。需先熟悉Oracle数据库流程,完成安装数据库、启动监听,本地安装客户端并配置环境变量。接着用pip安装cx_Oracle,在PyCharm中设置Python解释器,最后进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存在的问题没描述:

pyCharm连接oracle数据库报错如下:

DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded: 

首先熟悉oracle数据库这套流程

oracle数据库必须做的两件事:

  1.   安装数据库
  2. 启动监听

想要访问到oracle,必须在本地安装客户端

所以,python连接oracle数据库也一样,你本地必须要oracle的客户端

先取官网下载对应版本的instantclient,我的系统是win10,直接下载了一个解压版,解压到本地,然后配置环境变量path里面新加一个C:\oracle\instantclient_18_5

然后安装cx_Oracle

我的是python3.7,直接用pip安装的cx_Oracle

IDE用的是pyCharm,然后在pyCharm里面选中你的项目,设置python的解释器,选择你自己安装的python目录即可

测试

conn = cx_Oracle.connect('username/password@ip:port/dbname')
    cursor = conn.cursor()
    emp_id_set = set()
    if(len(person_name) != 0 ):
        person_sql = "select row_id from s_contact "
        cursor.execute(person_sql)
        if(cursor.rowcount + 1 > 0):
            for row in cursor.fetchall():
                emp_id_set.add(row[0])

 

### 使用Python连接Oracle数据库 为了实现PythonOracle数据库之间的连接,主要依赖于特定的驱动程序。当前有两种主流的选择:`cx_Oracle` 和 `python-oracledb`。 #### 安装驱动 对于较新的项目或者希望采用最新技术栈的情况下,建议使用`python-oracledb`作为首选方案[^2]。该驱动是`cx_Oracle`的一个重要更新版本,并遵循Python DB API 2.0规范。安装命令如下: ```bash pip install oracledb ``` 而对于一些遗留系统或是有特殊需求的应用,则可能仍然会选择传统的`cx_Oracle`驱动来完成这项工作[^1]。其安装过程涉及下载对应平台和Python版本的预编译二进制文件并将其放置在合适的路径中;另外还需要设置好必要的环境变量如`ORACLE_HOME`等以便顺利加载所需的动态链接库[^3]。 #### 连接示例代码 一旦完成了驱动的安装之后,在实际编程时就可以很方便地利用这些工具来进行数据操作了。下面给出一段简单的例子展示怎样建立同远端Oracle实例间的通信链路以及查询表中的记录: ```python import oracledb # 或者 'import cx_Oracle' connection = oracledb.connect( user="your_username", password="your_password", dsn="hostname:port/service_name" ) cursor = connection.cursor() query_result = cursor.execute("SELECT * FROM your_table").fetchall() for row in query_result: print(row) cursor.close() connection.close() ``` 这段脚本展示了基本的操作流程——创建连接对象、获取游标指针、发送SQL语句给服务器执行最后关闭资源释放内存空间。 需要注意的是如果遇到诸如`DPI-1047`这样的错误提示信息时,通常意味着本地缺少匹配架构(比如32位vs64位)的客户端软件包或者是相关环境配置不正确等问题存在[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值