网上很多教程都是千篇一律的,都只是教你安装cx_oracle然后就是连接数据库、创建游标等等操作,我按照他们的操作来之后就会报错,然后将以下文件放入到python解释器目录下之后就可以实用了,看来还是要实践出真知。
我这里连接的不是本地Oracle,是连接的远程局域网下的Oracle,连接Oracle需要安装 cx_Oracle 库来连接oracle数据库,我这里是连接的远程数据库,还需要拷贝跟oracle相关的dll文件到python解释器下的:Lib->site-packages 目录。
下载链接:python连接Oracle数据库所需要的文件-Python文档类资源-CSDN下载
也可以下载instant client(需要Oracle帐号),然后解压、打开目录,将里面全部.dll文件复制到site-packages目录下,但是此网站对国内不友好,下载比较缓慢。
经过几次测试,删除其中几个.dll文件之后就会报错,然后再恢复就能正常连接,增删改查等。
import cx_Oracle
import configparser as conf
# 从配置文件中获取连接信息
s = conf.ConfigParser()
s.read('Server.ini')
s_user = s.get("Server", "username")
s_pwd = s.get("Server", "password")
s_host = s.get("Server", "host")
s_port = s.get("Server", "port")
s_db = s.get("Server", "db")
# 连接数据库的三种方法
db1 = cx_Oracle.connect(s_user, s_pwd, f'{s_host}:{s_port}/{s_db}')
# db2 = cx_Oracle.connect(f'{s_user}/{s_pwd}@{s_host}:{s_port}/{s_db}')
# dsn = cx_Oracle.makedsn({s_host}, {s_port}, {s_db})
# db3 = cx_Oracle.connect({s_user}, {s_pwd}, dsn)
# 创建游标
cursor = db1.cursor()
sql = "select * from V$database"
# 执行sql
cursor.execute(sql)
# 循环获取数据
for row in cursor:
print(row)
# 获取全部数据
# result = cursor.fetchall()
# def makedict(c):
# cols = [d[0] for d in c.description]
# def createrow(*args):
# return dict(zip(cols, args))
# return createrow
# cursor.rowfactory = makedict(cursor)
# 获取字典形式数据
# for row in cursor:
# print(row)
# 关闭游标和连接
cursor.close()
db1.close()
配置文件参数,根据提示填写自己的信息即可。
[sql]
username=用户名
password=密码
host=主机地址
port=端口号
db=数据库名