1.3.8 python操作Oracle数据库

    技术2025-11-01  5

    前言

           对于数据的管理和分析来说,数据库还是专业一些。如果Python能和数据库结合在一起,那么就能结合两种的优势,提高效率。如果工作中使用的是Oracle数据库,那么python可以通过第三方模块cx_Oracle可以与Oracle相连。

    安装cx_Oracle

           Python一个官方网站PyPI,上面有丰富的模块。cx_Oracle就可以在PyPI中下载。打开PyPI的网址https://pypi.python.org/pypi,在里面搜索cx_Oracle,即可找到该模块;同样也可以直接通过pip或者pycharm中settings进行下载安装;

    pip install  cx_Oracle

    操作步骤

    ①.引用模块cx_Oracle ②.连接数据库 ③.获取cursor ④.使用cursor进行各种操作 ⑤.关闭cursor ⑥.关闭连接

    连接方式

    第一种方式:普通用户

    如果端口号默认1521可以省略

    #导入模块import cx_Oracleget_conn1 = cx_Oracle.connect('scott','tiger','localhost:1521/orcl')

    第二种方式:普通用户​​​​​​​

    #导入模块import cx_Oracleget_conn2 = cx_Oracle.connect('scott/tiger@localhost:1521/orcl')

    第三种方式:系统管理员​​​​​​​

    #导入模块import cx_Oracleget_conn3 = cx_Oracle.connect('sys/123456@localhost:1521/orcl',mode=cx_Oracle.SYSDBA)

    第四种方式:dsn_tns​​​​​​​

    #导入模块import cx_Oracledsn_tns = cx_Oracle.makedsn('localhost', 1521, 'orcl')get_conn4 = cx_Oracle.connect('scott', 'tiger', dsn_tns)

    注意:完成以上连接方式都必须安装对应Oracle版本的客户端,否则会抛出以下异常

    可根据提示打开以下网址进行下载对应版本的客户端 

    https://oracle.github.io/odpi/doc/installation.html#windows

    进入后有详细的说明以及操作:

     

    此处切记必须选对应oracle版本的客户端进行下载;

    下载后置于C盘新建一个文件夹oracle,并将其进行解压缩,如下图:

    然后非常重要的、非常重要的、非常重要的,重要的事情说三遍,将该目录C:\oracle\instantclient_11_2路径添加到path环境变量中,且需要将该环境变量置于所有变量之前(实际只要置于oracle自动添加到path环境变量中之前即可);如下图:

    最后,将pycharm也需要重启,其环境变量才会生效,最后重新启动重新执行脚本,则执行通过;

    oracle后续的操作与其他类型数据库操作步骤一样,此处就不过多赘述。

    EMP表的查询操作​​​​​​​

    #-*- coding:utf-8 -*-##-------------------------------------------------------------------------#ProjectName: Python2020#FileName: Oracle_Test.py#Author: mutou#Date: 2020/6/2 22:17#Description:oracle操作#--------------------------------------------------------------------------#也是需要引用第三方模块#引用模块import cx_Oracle#除了安装cx_Oracle模块以外,还需要下载对应版本的客户端,是对应cx_Oracle的客户端;必须下载与之当前oracle对应的客户端版本#然后解压放在C盘新建的一个oracle目录下,重要的需要配置环境变量,将该目录的路径添加到path中,且需要放在所有变量的第一个;#需要将pycharm关闭重新打开#第一步:需要建立连接class OracleTest(object): def __init__(self): #普通用户的基本信息;用户名、密码、服务器地址以及实例名 self.conn=cx_Oracle.connect("scott","tiger","localhost/orcl") self.get_cursor=self.conn.cursor() #查询scott用户中的emp表 def select_data(self): str_sql="select * from emp" self.get_cursor.execute(str_sql) get_reuslt=self.get_cursor.fetchall() print(get_reuslt) #测试一下:if __name__=="__main__": orac=OracleTest() print(orac.conn)    orac.select_data()

    执行结果如下:

     

     

    Processed: 0.009, SQL: 10