• 本文主要介绍python对oracle数据库的操作学习


    包含:oracle数据库在Windows操作系统下的安装和配置、python需要安装的第三方拓展包以及基本操作的样例学习。

    1. Oracle数据库

      1. Oracle环境配置&客户端连接

      2. 下载安装Oracle绿色版客户端instantclient

    oracle官网下载instantclient basic包,解压缩到E:ProgramFileinstantclient

    1. 设置环境变量:

    • NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不设,toad查询中文会是乱码)
    • TNS_ADMIN= E:ProgramFileinstantclient
    • Path=...;E:ProgramFileinstantclient
    1. 配置tnsnames.tns文件:

    E:ProgramFileinstantclient下建立文件tnsnames.ora,将下面内容粘贴进该文件:

    *** =

      (DESCRIPTION =

        (ADDRESS_LIST =

       (ADDRESS = (PROTOCOL = TCP)(HOST= ***)(PORT = 1521))

        )

        (CONNECT_DATA =

          (SERVER = DEDICATED)

         (SERVICE_NAME = ***)

        )

      )

    注:图中红色部分根据自己需要进行更改。

    1. 配置PL/SQL Developer进行连接:

    tools/preference里,oracle-connection选项配置oracle homeoci library

    • oracle homeE:ProgramFileinstantclient
    • oci libraryE:ProgramFileinstantclientoci.dll

     

    配置完成,可以重启 plsql developer,输入正确的用户名和密码就可以连接啦~~~

    1. python连接oracle数据库

    2. 安装cx_Oracle包:

    http://cx-oracle.sourceforge.net/  需要注意下版本,根据操作系统和已安装的python版本进行选择

     

    自行选择版本,下载后直接执行即可

     

       

    1. 安装后的验证:

    import cx_Oracle没有报错:

     

    备注:如果import cx_Oracle 时报错提示找不到OCI.DLL,解决方法:到装了Oracle的机器上找一个,然后copyLibsite-packages目录下即可。

    1. Python连接oracle数据库的基本操作

    2. 创建数据库连接connect和关闭数据库连接close

    创建数据库连接的三种方式:

    方法一:用户名、密码和监听分开写

    import cx_Oracle

    db=cx_Oracle.connect('username/password@host/orcl')

    db.close()

       

    方法二:用户名、密码和监听写在一起

    import cx_Oracle

    db=cx_Oracle.connect('username','password','host/orcl')

    db.close()

       

    方法三:配置监听并连接

    import cx_Oracle

    tns=cx_Oracle.makedsn('host',1521,'orcl')

    db=cx_Oracle.connect('username','password',tns)

    db.close()

       

    1. 建立cursor并执行SQL语句:查询、更新、插入、删除

    2. 创建数据库连接,创建游标cursor,然后执行sql语句,执行完成后,关闭游标,关闭数据库连接

    创建连接后,建立cursor,并执行SQL语句

     

    1. 插入、更新、删除操作后需要提交commit

  • 相关阅读:
    rust 实战 实现一个线程工作池 ThreadPool
    rust Cell 与 RefCell的区别
    使用pre标签显示原始文本并自动换行
    rust实战 newtype模式
    什么是幻读,怎么解决幻读
    rust match 模式匹配摘录
    Elasticsearch 8的版本来了;可以直接在 Elasticsearch 中使用 PyTorch Machine Learning 模型
    神奇的库 phone
    python中单例的实现
    斐波那契查找
  • 原文地址:https://www.cnblogs.com/Javauser/p/8951792.html
Copyright © 2020-2023  润新知