重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
今天就跟大家聊聊有关在Python中如何使用cx_Oracle来访问Oracle,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
创新互联公司是一家集网站建设,平度企业网站建设,平度品牌网站建设,网站定制,平度网站建设报价,网络营销,网络优化,平度网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。在Python中如果要访问和操作Oracle数据库,可使用cx_Oracle来实现。
准备工作
安装好Python,本例使用Python 2.7版本。
安装本地Oracle客户端,配置数据库连接,本例使用Oracle 11g。
下载和安装cx_Oracle
下载地址:http://sourceforge.net/projects/cx-oracle/
下载时注意Oracle数据库版本及本地Python版本。下载后,直接安装即可。
简单查询操作
import cx_Oracle #创建数据库连接 conn = cx_Oracle.connect('dbuser/password@servername/sid') #获取操作游标 cursor = conn.cursor() #执行查询SQL,返回值1 cursor.execute("""select 1 from dual""") #获取返回结果一条记录 rs = cursor.fetchone() #执行完成,打印提示信息 print 'result = %s'%rs result = 1 #关闭连接,释放资源 cursor.close() conn.close()执行DDL建表语句
cursor.execute("""create table tmp_user(id number, name varchar2(20))""") print 'completed!'执行DML插入记录
#插入一条记录 cursor.execute( """insert into tmp_user values(1,'admin')""" ) #采用绑定变量方式插入一条记录 param = {'id':2, 'name':'system'} cursor.execute('insert into tmp_user values(:id, :name)',param) #一次插入多条数据,参数为字典列表形式 param=[{'id':3,'name':'John'},{'id':4,'name':'Mary'},{'id':5,'name':'Steven'}] cursor.executemany('insert into tmp_user values(:id,:name)',param) #再一次插入多条数据,参数为元组列表形式 param=[] for i in range(6,8): #[6,7] param.append((i,'user'+str(i))) cursor.executemany('insert into tmp_user values(:1,:2)',param) #提交事务 conn.commit查询返回多条记录的情况
cursor.execute("""select * from tmp_user""") #获取2条记录 r2 = cursor.fetchmany(2) print r2[0], r2[1] #获取剩余所有记录 rn = cursor.fetchall() for row in rn: print row #带条件的查询 cursor.prepare("""select * from tmp_user where id>=:id""") cursor.execute(None,{'id':7}) #None注意大小写 for row in cursor: print row执行调用存储过程(见下篇)
看完上述内容,你们对在Python中如何使用cx_Oracle来访问Oracle有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。