在Python中使用cx_Oracle来访问Oracle

来源:互联网 发布:公交导航软件 编辑:程序博客网 时间:2024/04/28 02:59

在Python中如果要访问和操作Oracle数据库,可使用cx_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,返回值1cursor.execute("""select 1 from dual""")#获取返回结果一条记录rs = cursor.fetchone()#执行完成,打印提示信息print 'result = %s'%rsresult = 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. 执行调用存储过程(见下篇)


0 0
原创粉丝点击