在Python中如何使用cx_Oracle来访问Oracle
admin
2023-05-10 17:02:03
0

在Python中如果要访问和操作Oracle数据库,可使用cx_Oracle来实现。

  1. 准备工作

    1. 安装好Python,本例使用Python 2.7版本。

    2. 安装本地Oracle客户端,配置数据库连接,本例使用Oracle 11g。

    3. 下载和安装cx_Oracle

      下载地址:http://sourceforge.net/projects/cx-oracle/

      下载时注意Oracle数据库版本及本地Python版本。下载后,直接安装即可。

  2. 简单查询操作

    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()
  3. 执行DDL建表语句

    cursor.execute("""create table tmp_user(id number, name varchar2(20))""")
    print 'completed!'
  4. 执行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
  5. 查询返回多条记录的情况

    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
  6. 执行调用存储过程(见下篇)

相关内容

热门资讯

动物园老虎走路颤颤巍巍,园方回... 5月13日,一位网友称在山东德州“泉城欧乐堡”虎餐厅,关注到现场老虎身体发黑,其中一只颤颤巍巍、走路...
热水器40升可以洗多久 一般来说40升的热水器可以洗20-40分钟左右的时间,有差距是因为每个人洗澡时对水的温度要求不同,比...
2020年流行什么样的壁布 2020年最流行的是田园风格的壁布,因为体验风格的壁布适合大部分的装修风格,不管你家里是中式装修还是...
热水器50升和60升哪个实用 1、一般三口之家使用的是50升的,但是机器在加热过程中也会消耗一部分水,所以选60升的也可以。2、以...
煤气热水器不恒温怎么办 煤气热水器不恒温是很常见的问题,会给我们的生活带来很大的不便。这种情况的出现可能是由于多种因素引起的...
恒温热水器没有温度怎么办 如果您的恒温热水器没有温度,那么这可能是一个很大的问题,因为您无法使用这个热水器来满足您的热水需求。...
沈伯洋不认“抗中保台”?徐巧芯... 海峡导报综合报道 民进党13日正式征召民进党民代沈伯洋参选台北市长,蓝绿对决态势至此成形。对此,国民...
宝马线上股东大会“技术故障”背... 【文/观察者网 张家栋 编辑/高莘】当地时间5月13日,据德国《世界报》报道,宝马集团年度股东大会因...
线上预约+线下收购,十部门联合... 2026年夏粮旺季收购即将全面启动。近日,国家发展改革委、国家粮食和物资储备局等十部门联合发出通知,...
赖清德再度缺席弹劾案审查会,国... 台民意机构于5月14日继续召开针对台湾地区领导人赖清德弹劾案的第二次审查会,赖清德与13日一样未出席...