暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

python 操作oracle

测试开发杂货 2021-09-09
422

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


结束了,今天更新到这里了,同志们下次见


文章转载自测试开发杂货,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论