模块安装

  1.安装cx_Oracle模块之前必须要安装Oracle客户端,否则无法使用

  2.系统上需要装有对应版本的c++编译套件(Linux下:g++ Windows下:VC++)

参考文档

  https://oracle.github.io/python-cx_Oracle/

  http://cx-oracle.readthedocs.io/en/5.3/index.html

代码示例

import cx_Oracle

conn = None
cursor = None
try:
# 1.连接数据库
# conn = cx_Oracle.Connection("username", "password", "13.13.13.123:1521/orcl")
# 或
conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl") # 2.创建游标对象
cursor = conn.cursor() # 3.执行插入语句
sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:id, :name,:age)"
sql_args = {"id": 30, "name": "Jet", "age": 18}
cursor.execute(sql, sql_args)
print(cursor.rowcount) # 3.批量执行插入语句
# sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:1, :2, :3)"
# sql_args = [
# (10, "Jesdsat", 18,),
# (11, "Jedsadt", 18,),
# (12, "Jeadst", 18,),
# (13, "Jedast", 18,),
# ]
# cursor.executemany(sql, sql_args) # 执行多条插入语句的方法
sql = "INSERT INTO TAB_STUDENT(ID,NAME,AGE) VALUES(:id, :name, :age)"
sql_args = [
{"id": 20, "name": "Jet", "age": 18},
{"id": 21, "name": "Jet", "age": 18},
{"id": 22, "name": "Jet", "age": 18},
{"id": 23, "name": "Jet", "age": 18},
{"id": 24, "name": "Jet", "age": 18},
]
cursor.executemany(sql, sql_args) # 执行多条插入语句的方法
print(cursor.rowcount) # 获取受影响的行数 # 4.提交事务
conn.commit()
except Exception as ex:
pass
finally:
# 5.关闭游标与连接
cursor.close()
conn.close()

增-INSERT


import cx_Oracle

conn = None
cursor = None
try:
# 1.连接数据库
conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl") # 2.创建游标对象
cursor = conn.cursor() # 3.执行删除语句
sql = "DELETE FROM TAB_STUDENT WHERE ID = :id"
sql_args = {"id": 30}
cursor.execute(sql, sql_args)
print(cursor.rowcount) # 获取受影响的行数 # 4.提交事务
conn.commit()
except Exception as ex:
pass
finally:
# 5.关闭游标与连接
cursor.close()
conn.close()

删-DELETE


import cx_Oracle

conn = None
cursor = None
try:
# 1.连接数据库
conn = cx_Oracle.connect("username/password@13.13.13.123:1521/orcl")
# 2.创建游标对象
cursor = conn.cursor()
# 3.执行更新语句
sql = "UPDATE TAB_STUDENT SET NAME = :new_name WHERE ID = :id"
sql_args = {"id": 1, "new_name": "Jack"}
cursor.execute(sql, sql_args)
print(cursor.rowcount) # 获取受影响的行数
# 4.提交事务
conn.commit()
except Exception as ex:
pass
finally:
# 5.关闭游标与连接
cursor.close()
conn.close()

改-UPDATE


import cx_Oracle
conn = None
cursor = None
try:
# 1.连接数据库
conn = cx_Oracle.connect("username/password@13.13.13.123/orcl")
# 2.创建一个游标对象Cursor对象
cursor = conn.cursor()
# 3.执行查询语句
sql = "SELECT * FROM TAB_STUDENT WHERE USER_NAME=:user_name AND MOBILE=:mobile"
sql_args = {"user_name": "qq1207501666", "mobile": 18888888888}
cursor.execute(sql, sql_args)
# 4.提取查询结果
print(cursor.fetchone()) # 提取一行结果,相当于cursor.next()
# cursor.fetchmany(3) # 提取3行结果
# cursor.fetchall() # 提取全部结果
except Exception as ex:
pass
finally:
# 8.关闭游标与连接
cursor.close()
conn.close()

查-SELECT


# 1.使用"命名参数"进行绑定
sql = "SELECT * FROM TAB_STUDENT WHERE ID = :ID"
sql_args = {"ID": 1}
cursor.execute(sql, sql_args) # 传入的是一个字典 # 2.使用"位置参数"进行绑定
sql = "SELECT * FROM TAB_STUDENT WHERE ID = :1"
sql_args = (888,)
cursor.execute(sql, sql_args) # 传入的是一个元组

SQL语句绑定参数的两种方式

Python3-cx_Oracle模块-数据库操作之Oracle的更多相关文章

  1. Python使用cx_Oracle模块连接操作Oracle数据库

    1. 简单介绍 cx_Oracle 是一个用来连接并操作 Oracle 数据库的 Python 扩展模块, 支持包含 Oracle 9.2 10.2 以及 11.1 等版本号 2.安装 最好是去官网h ...

  2. day6常用模块,数据库操作

    一.循环调用函数    map() 二.列表推导式和生成器 三.filter过滤器 四.os模块 五.datetime模块 六.random模块 七.写日志,导入nnlog模块 八,发邮件 九,操作数 ...

  3. Python3-ibm_db模块-数据库操作之DB2

    官方文档 https://www.ibm.com/support/knowledgecenter/SSEPGG_9.5.0/kc_gen/developing-gen1.html 模块安装 Windo ...

  4. Python3-pymysql模块-数据库操作之MySQL

    博客转载 http://www.cnblogs.com/alex3714/articles/5950372.html 代码示例 import pymysql conn = None cursor = ...

  5. python 数据库操作类

    #安装PyMySQL:pip3 install PyMySQL   #!/usr/bin/python3   #coding=utf-8   #数据库操作类     from  datetime  i ...

  6. Python使用cx_Oracle模块操作Oracle数据库--通过sql语句和存储操作

    https://www.jb51.net/article/125160.htm?utm_medium=referral  Python使用cx_Oracle调用Oracle存储过程的方法示例 http ...

  7. Python3.x:SQLAlchemy操作数据库

    Python3.x:SQLAlchemy操作数据库 前言 SQLAlchemy是一个ORM框架(Object Rational Mapping,对象关系映射),它可以帮助我们更加优雅.更加高效的实现数 ...

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

    遇到需求,我们需要用Python对Oracle数据库进行操作. 这次我们使用cx_Oracle Oracle Client 在安装cx_Oracle之前,先安装Oracle客户端. cx_Oracle ...

  9. 第三百零六节,Django框架,models.py模块,数据库操作——创建表、数据类型、索引、admin后台,补充Django目录说明以及全局配置文件配置

    Django框架,models.py模块,数据库操作——创建表.数据类型.索引.admin后台,补充Django目录说明以及全局配置文件配置 数据库配置 django默认支持sqlite,mysql, ...

随机推荐

  1. 伪静态%{REQUEST_FILENAME} !-f 和!-d用法

    %{REQUEST_FILENAME} !-f 和!-d只对下一条RewriteRule起作用.再往下的RewriteRule不管用. -f  表示为文件 -d 表示为目录 ! 表示非,取反的意思 R ...

  2. ES6-函数与数组命名

    1 箭头函数 1.1 以往js function 名字(){ 其他语句 } 1.2 现在ES6 修正了一些this,以前this可以变 ()=>{ 其他语句 } 如果只有一个参数,()可以省 . ...

  3. POJ 2671 Jimmy's Bad Day题解(很详细很友好,类似区间dp)

    有问题的话欢迎在评论区提出 题意: 题目链接 你是一个送快递的,现在给你一个环,环的边有权值,代表走这条边所花的时间,每个点代表一个地点,点有点权,代表这个点上有多少货物需要你送.初始时间\(t=0\ ...

  4. 使用RTL进行硬件模型编程的局限性

    https://mp.weixin.qq.com/s/Nj_d3hwgNX4kWVtKsqMSWg   ​​   硬件模型编程,即Hardware Model Programming.在RTL抽象级别 ...

  5. DOM对HTML元素的增删改操作和事件概念和事件监听

    DOM创建节点的方法: document.createElement(Tag),Tag必须是合法的HTML元素 DOM复制节点的方法: 节点cloneNode(boolean deep),当deep为 ...

  6. 【大厂面试03期】MySQL是怎么解决幻读问题的?

    问题分析 首先幻读是什么? 根据MySQL文档上面的定义 The so-called phantom problem occurs within a transaction when the same ...

  7. Java实现 LeetCode 442 数组中重复的数据

    442. 数组中重复的数据 给定一个整数数组 a,其中1 ≤ a[i] ≤ n (n为数组长度), 其中有些元素出现两次而其他元素出现一次. 找到所有出现两次的元素. 你可以不用到任何额外空间并在O( ...

  8. java实现第六届蓝桥杯灾后重建

    灾后重建 题目描述 Pear市一共有N(<=50000)个居民点,居民点之间有M(<=200000)条双向道路相连.这些居民点两两之间都可以通过双向道路到达.这种情况一直持续到最近,一次严 ...

  9. 从linux源码看socket的阻塞和非阻塞

    从linux源码看socket的阻塞和非阻塞 笔者一直觉得如果能知道从应用到框架再到操作系统的每一处代码,是一件Exciting的事情. 大部分高性能网络框架采用的是非阻塞模式.笔者这次就从linux ...

  10. PAT 在霍格沃茨找零钱

    如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 —— 就如海格告诉哈利的:“十七个银西可(Sickle)兑一个加隆(Galleon),二十九个纳特(Knut)兑一个西可,很容易.”现在,给定 ...