1 Oracle数据库

1.1 Oracle环境配置&客户端连接

1.1.1 下载安装Oracle绿色版客户端instantclient:

到oracle官网下载instantclient basic包,解压缩到E:\ProgramFile\instantclient;

1.1.2 设置环境变量:

NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不设,toad查询中文会是乱码)
TNS_ADMIN= E:\ProgramFile\instantclient
Path=…;E:\ProgramFile\instantclient

1.1.3 配置tnsnames.tns文件:

在E:\ProgramFile\instantclient下建立文件tnsnames.ora,将下面内容粘贴进该文件:

自定义名称 =
(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST =  127.0.0.1)(PORT = 1111))
    )
    (CONNECT_DATA =
      (SERVER=DEDICATED)
      (SERVICE_NAME = database_name)
    )
  )

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

1.1.4 配置PL/SQL Developer进行连接:

在tools/preference里,oracle-connection选项配置oracle home和oci library:

oracle home:E:\ProgramFile\instantclient
oci library:E:\ProgramFile\instantclient\oci.dll


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

1.2 python连接oracle数据库

1.2.1 安装cx_Oracle包:

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

由于我的python是3.8版本的,所以直接使用pip install cx_Oracle,安装的是cx_Oracle 8.3。

cx_Oracle 8.3 已经使用 Python 3.6 到 3.10 版本进行了测试。旧版本的 cx_Oracle 可以与以前的 Python 版本一起使用。您可以将 cx_Oracle 与 Oracle 11.2、12、18、19 和 21 客户端库一起使用。Oracle 的标准客户端-服务器版本互操作性允许连接到较旧和较新的数据库。例如,Oracle 19c 客户端库可以连接到 Oracle 数据库 11.2。——节选自Oracle官网,见下图,https://oracle.github.io/python-cx_Oracle/。

1.2.2 安装后的验证:

import cx_Oracle没有报错:

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

1.2.3 用python测试连接

import cx_Oracle

conn = cx_Oracle.connect('name/password@127.0.0.1:1111/name')
cursor = conn.cursor()
sql = "select * from table"
try:
    cursor.execute(sql)
    rs = cursor.fetchall()
except:
    print("连接数据库失败")
    print(sql)

print("连接数据库成功")
cursor.close()
conn.close()



#更简洁的写法是
with cx_Oracle.connect('name', 'password', "127.0.0.1:1111/school",
            encoding="UTF-8") as connection:
    cursor = connection.cursor()
    sql = "select * from table a WHERE a.name ='小明'"
    cursor.execute(sql)
    re = cursor.fetchall()
    print(re)
    connection.commit()

输出如下图,说明连接成功了。

参考博客:
本文主要介绍python对oracle数据库的操作学习
python3连接oracle数据库

更多推荐

【Oracle】2022年 python3连接oracle数据库(window环境)