python之Oracle操作(cx_Oracle)

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

下载的时候注意版本,对照你所使用的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()

  

				
时间: 2024-08-09 02:17:29

python之Oracle操作(cx_Oracle)的相关文章

python 连接oracle(cx_Oracle模块)

使用python连接oracle数据库:1.安装python3.0:2.安装cx_Oracle模块:3.安装ORACLE_CLIENT :(ORACLE_CLIENT和python位数保持一致:要么都安装32位要么都用64位) 导入连接oracle的模块 import cx_Oracle #获取连接 username=用户名 pass=密码 ipadd=数据库地址 sid=数据库实例 conn=cx_Oracle.connect('username/[email protected]/sid')

Python连接ORACLE操作

一.准备工作 1.安装cx_Oracle ttps://pypi.python.org/pypi下查找cx_Oracle并下载 执行安装命令 pip install cx_Oracle-6.0rc1-cp35-cp35m-win_amd64.whl 2.安装ORACLE,并建用户TEST/TEST_lu 二.编写PY文件 import cx_Oracle conn = cx_Oracle.connect('test/[email protected]')print (conn.version)

Linux下使用Python连接Oracle 报cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded解决方法

在Linux上使用python运行数据库脚本的时候报:cx_Oracle.DatabaseError: DPI-1047: 64-bit Oracle Client library cannot be loaded解决方法 这个导致这个问题的原因是本机的Python2.7是64位的,而数据库用了32位的instantclient-basic,所以要把instantclient-basic的版本更新为64位的 以下是按照官网文档操作的,自测没有问题. 下载instantclient-basic的R

Python连接Oracle实例

最近需要用Python连接Oracle操作,之前接触过,没自己手写过,特此记录.数据库是Oracle 11,python版本2.7的. 这个需求是两个库A和B,假设现在需要识别一张表在A库里面有没记录,如果没有,将表名写入一个log,如果有再去B库里查有没有该表,如果没有,表名计入另外一个log文件. 查库的sql语句 select t.* from all_objects t where t.object_name = upper(&table_name); Python连接oracle需要的

随笔记:如何使用Python连接(/操作)Oracle数据库(Windows平台下)

遇到需求,我们需要用Python对Oracle数据库进行操作. 这次我们使用cx_Oracle Oracle Client 在安装cx_Oracle之前,先安装Oracle客户端. cx_Oracle cx_Oracle是一个遵循Python数据库API接口的扩展模块,可通过她对Oracle进行操作. 目前,可从此地址下载:http://cx-oracle.sourceforge.net/ 我下载的是针对Python2.7.Oracle11g.Win32的版本:cx_Oracle-5.1.3-1

本文主要介绍python对oracle数据库的操作学习

包含:oracle数据库在Windows操作系统下的安装和配置.python需要安装的第三方拓展包以及基本操作的样例学习. Oracle数据库 Oracle环境配置&客户端连接 下载安装Oracle绿色版客户端instantclient: 到oracle官网下载instantclient basic包,解压缩到E:\ProgramFile\instantclient: 设置环境变量: NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中间有空格,这个如果不

python 连接oracle 报错 cx_Oracle.DatabaseErro

1,python 连接oracle的时候报错如下 cx_Oracle.DatabaseError: ORA-24315: 非法的属性类型 ,2,导致这个错误的原因是服务器oracle版本和客户端cx_oracle客户端版本不一致引起的,所以通过下面命令询oracle版本. select * from v$version 3,然后到 http://sourceforge.net/projects/cx-oracle 下载对应的客户端版本即可

不安装Oracle使用cx_Oracle

使用Python连接Oracle数据库的环境非常麻烦,尤其在window下的配置,默认情况下需要安装Oracle数据库才行,对于不想在机器上安装Oracle的用户来讲,安装过程会出现各种问题.最常见的如下: 安装出错:distutils.errors.DistutilsSetupError: cannot locate Oracle include files in -- 运行出错:cx_Oracle.InterfaceError: Unable to acquire Oracle enviro

Debian下无root权限使用Python访问Oracle

这篇文章的起因是,在公司的服务器上没有root权限,但是需要使用 Python 访问 Oracle,而不管是使用 pip 安装组件还是安装 Oracle 的 client,都需要相应权限.本文即解决该问题. 使用 virtualenv 使用系统自带 Python 和 pip 安装组件时,默认会安装到系统目录下,需要 root 权限才能执行写操作. 不管是从资源隔离的角度,还是从绕过 root 的角度,你都需要一套顺手的 Python 虚拟环境工具:virtualenv. 去求运维哥哥帮忙安装 v