python使用cx_Oracle操作oracle示例
2017-07-20 15:14
716 查看
本文地址:http://blog.csdn.NET/kongxx/article/details/7107661
1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包
[plain]
view plain
copy
print?
http://cx-oracle.sourceforge.net/
2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得
[plain]
view plain
copy
print?
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装
[plain]
view plain
copy
print?
$ sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
装完毕后还需要设置一下环境变量,如下
[plain]
view plain
copy
print?
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib
3. 创建一个简单的python文件,测试安装是否成功
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("select * from dual")
row = cursor.fetchone ()
print row[0]
cursor.close ()
conn.close ()
4. 下面看一个数据库建表和插入操作
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, 'a', 'b', 'c')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, 'aa', 'bb', 'cc')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, 'aaa', 'bbb', 'ccc')")
conn.commit()
cursor.close ()
conn.close ()
5. 下面再来看看查询,查询通常有两种方式:一种是使用cursor.fetchall()获取所有查询结果,然后再一行一行的迭代;另一种每次通过cursor.fetchone()获取一条记录,直到获取的结果为空为止。看一下下面的例子:
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("SELECT * FROM TEST")
rows = cursor.fetchall()
for row in rows:
print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.execute ("SELECT * FROM TEST")
while (1):
row = cursor.fetchone()
if row == None:
break
print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.close ()
conn.close ()
二。另一个接口
网址:http://www.cnblogs.com/aguncn/p/5787005.html
1. 要想使Python可以操作Oracle数据库,首先需要安装cx_Oracle包,可以通过下面的地址来获取安装包
[plain]
view plain
copy
print?
http://cx-oracle.sourceforge.net/
2. 另外还需要oracle的一些类库,此时需要在运行python的机器上安装Oracle Instant Client软件包,可以通过下面地址获得
[plain]
view plain
copy
print?
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
找到符合自己平台的包,然后安装,这里我使用的是rpm包,所以使用以下命令安装
[plain]
view plain
copy
print?
$ sudo rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.i386.rpm
装完毕后还需要设置一下环境变量,如下
[plain]
view plain
copy
print?
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/lib/oracle/11.2/client/lib
3. 创建一个简单的python文件,测试安装是否成功
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("select * from dual")
row = cursor.fetchone ()
print row[0]
cursor.close ()
conn.close ()
4. 下面看一个数据库建表和插入操作
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("CREATE TABLE TEST(ID INT, COL1 VARCHAR(32), COL2 VARCHAR(32), COL3 VARCHAR(32))")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(1, 'a', 'b', 'c')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(2, 'aa', 'bb', 'cc')")
cursor.execute ("INSERT INTO TEST (ID, COL1, COL2, COL3)VALUES(3, 'aaa', 'bbb', 'ccc')")
conn.commit()
cursor.close ()
conn.close ()
5. 下面再来看看查询,查询通常有两种方式:一种是使用cursor.fetchall()获取所有查询结果,然后再一行一行的迭代;另一种每次通过cursor.fetchone()获取一条记录,直到获取的结果为空为止。看一下下面的例子:
[python]
view plain
copy
print?
import cx_Oracle
conn = cx_Oracle.connect('fkong/fkong@172.17.23.129/orcl')
cursor = conn.cursor ()
cursor.execute ("SELECT * FROM TEST")
rows = cursor.fetchall()
for row in rows:
print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.execute ("SELECT * FROM TEST")
while (1):
row = cursor.fetchone()
if row == None:
break
print "%d, %s, %s, %s" % (row[0], row[1], row[2], row[3])
print "Number of rows returned: %d" % cursor.rowcount
cursor.close ()
conn.close ()
二。另一个接口
网址:http://www.cnblogs.com/aguncn/p/5787005.html
def Oracle_Exec(SqlStr): "Execute oracle command" conn = cx_Oracle.connect(DB_UserName, DB_UserPwd, DB_ConnectStr) cursor = conn.cursor() try: cursor.execute(SqlStr) conn.commit() return True except: conn.rollback() print "Exec sql failed: %s" % SqlStr return False finally: cursor.close() conn.close() def Oracle_Query(SqlStr, debug = 0): "Execute oracle query, and return datalist" datalist = [] conn = cx_Oracle.connect(DB_UserName, DB_UserPwd, DB_ConnectStr) cursor = conn.cursor() try: cursor.execute(SqlStr) while 1: rs = cursor.fetchone() if rs == None: break datalist.append(rs) if debug: fieldnames = [] for field in cursor.description: fieldnames.append(field[0]) print fieldnames print datalist print "Query success!" except: print "Exec sql failed: %s" % SqlStr finally: cursor.close() conn.close() return datalist
相关文章推荐
- Python使用cx_Oracle调用Oracle存储过程的方法示例
- 【Python Oracle】使用cx_Oracle 进行数据库操作介绍
- Python使用cx_Oracle模块连接操作Oracle数据库
- Python使用cx_Oracle模块操作Oracle数据库详解
- Python使用cx_Oracle模块连接操作Oracle数据库
- python列表操作使用示例分享
- python cx_Oracle模块的安装和使用(linux环境)
- 在Python中使用cx_Oracle调用Oracle存储过程
- Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法
- python文件读写并使用mysql批量插入示例分享(python操作mysql)
- Python使用cx_Oracle模块将oracle中数据导出到csv文件的方法
- 数据库操作_连接SQL Server数据库示例;连接ACCESS数据库;连接到 Oracle 数据库示例;SqlCommand 执行SQL命令示例;SqlDataReader 读取数据示例;使用DataAdapter填充数据到DataSet;使用DataTable存储数据库表;将数据库数据填充到 XML 文件;10 使用带输入参数的存储过程;11 使用带输入、输出参数的存储过程示;12 获得数据库中表的数目和名称;13 保存图片到SQL Server数据库示例;14 获得插入记录标识号;Exce
- 使用cx_freeze把python打包exe示例
- 使用python删除nginx缓存文件示例(python文件操作)
- python cx_Oracle模块的安装和使用(linux环境)
- python cx_Oracle模块的安装和使用
- python 通过cx_Oracle操作oracle database
- 使用python删除nginx缓存文件示例(python文件操作)
- 在python中使用cx_Oracle模块出现“DLL Load failed”的处理方法