python 操作oracle
为啥要写这个呢,因为来了个活,需要操作oracle,顺道写一下吧。来活了同志们,搬砖呀。
配置
第一步安装wheel 打开 cmd 输入 pip install wheel 安装成功 第二步下载cx-Oracl 并且安装 下载地址:https://pypi.org/project/cx-Oracle/#files 选择对应python版本的cx-Oracl,否则会安装失败。
安装时,报这样的错误,那一定是版本不对再换一个
ERROR: cx_Oracle-8.2.0-cp37-cp37m-manylinux1_x86_64.whl is not a supported wheel on this platform. 再去打开刚才那个下载地址换一个
安装命令
pip install whl的路径+文件名
安装成功
连接oracle
开始连接 先导入 oracle import cx_Oracle 然后连接数据库 db=cx_Oracle.connect("用户名/密码@ip:端口/服务名")
很明显这些信息都可以看到,就是这个服务名需要去数据库或者问开发,本着自己动手丰衣足食的原则,当然是自己去查了,在navicat for oracle中执行 select * from v$instance; 结果的name就是服务名字。好的连接成功
查询 获取结果
第一步 获取游标
c=db.cursor()
sql='select * from user'注意结尾的;不要写 ,不然会报cx_Oracle.DatabaseError: ORA-00911: invalid character这样的错误
第二步 执行sql
c.execute(sql)
第三步获取结果
结果=[(1),(2),(3),(4),(5)]
获取一条数据
a1=c.fetchone()
结果为(1)
获取部分结果
a2=c.fetchmany(2)
结果为 [(2),(3)]
获取全部结果
a3=c.fetchall() 结果为
[(4),(5)]
第四步关闭游标
c.close()
参数化
假设user要参数化
"select * from user"
然后修改成 a='user' "select * from %s"%a
或者 "select * from {}".format(a)
或者 "select * from "+a
结束了,今天更新到这里了,同志们下次见




