python之Oracle操作(cx_Oracle)

python可通过使用cx_Oracle模块对Oracle数据库进行操作。
首先,需要下载cx_Oracle模块,下载地址:https://pypi.python.org/pypi/cx_Oracle/6.0rc1

python之Oracle操作(cx_Oracle) - 星瑞 - 星瑞的博客

下载的时候注意版本,对照你所使用的Python版本和位数。
我所使用的是Python3.6,所以下载的版本是:cx_Oracle-6.0rc1-cp36-cp36m-win_amd64.whl
然后安装即可:

python -m pip install cx_Oracle-6.0rc1-cp36-cp36m-win_amd64.whl

代码举例:

#用途:操作oracle数据库demo
import cx_Oracle
user = "yzwxceshi"
passwd = "yzwxceshi"
listener = '192.168.20.191:1521/orcl'
conn = cx_Oracle.connect(user, passwd, listener)
print(conn)
cursor = conn.cursor()
sql = "select * from T_MSIS_SM_ROLE"

#一次取一条数据,row为元组数据
cursor.execute(sql)
while (1):
    row = cursor.fetchone()
    if row == None:
        break
    print(row)

print("--------------------------------------")
#一次取所有数据,rows为元组列表数据
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
    print(row)

#支持对数据库的插入、更新和删除操作。输入操作SQL,执行无返回。
def other_operation(sql):
    cursor.execute(sql)
    conn.commit()
    print(sql)

cursor.close()
conn.close()

  

封装成类代码举例:

#oracle操作类
import cx_Oracle
class Oracle_Class:
    user = "yzwxceshi"
    passwd = "yzwxceshi"
    listener = '192.168.20.191:1521/orcl'
    conn = cx_Oracle.connect(user, passwd, listener)
    cursor = conn.cursor()

    # 查询操作:一次性取所有数据。输入查询SQL,返回结果元组列表。
    def querydata(self, sql):
        list_result = []
        self.cursor.execute(sql)
        rows = self.cursor.fetchall()
        for row in rows:
            list_result.append(row)
        return list_result

    # 支持对数据库的插入、更新和删除操作。输入操作SQL,无返回。
    def other_operation(self, sql):
        self.cursor.execute(sql)
        self.conn.commit()
        print(sql)

    # 关闭连接,释放资源
    def close_all(self):
        self.cursor.close()
        self.conn.close()

  

调用代码:

#用于测试数据库操作
from oracle_class import Oracle_Class
select_sql = "select ROLE_NAME from T_MSIS_SM_ROLE"
insert_sql = "insert into T_MSIS_SM_ROLE  values (14, 'role_name', '普通用户')"
update_sql = "update T_MSIS_SM_ROLE set ROLE_DESC = '测试用户' where ROLE_ID = 16"
delete_sql = "delete from T_MSIS_SM_ROLE where  ROLE_ID = 15"

oracle_obj = Oracle_Class()
oracle_obj.other_operation(delete_sql)

list = oracle_obj.querydata(select_sql)
print(list)

oracle_obj.close_all()

  



原文地址:https://www.cnblogs.com/gongxr/p/7225383.html