模块安装

  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. 【HBase】安装与使用

    下载HBase(注意下载与您使用的hadoop版本兼容的版本) 前提:hadoop HA,zookeeper是正常的. 1.解压 tar -zxvf hbase压缩包 -C 解压后存储路径 2.配置环 ...

  2. Java 从入门到精通-反射机制

    导读 Java反射机制是开发者迈向结构化开发的重要一步,同时掌握了反射机制也就掌握了所有框架的核心实现思想. 认识反射机制 简单例子 通过以上的程序就会发现,除了对象的正向处理操作之外,还可以通过ge ...

  3. Java实现 蓝桥杯 算法训练VIP 报数(暴力+数学)约瑟夫环问题

    试题 算法训练 报数 问题描述 现有n个同学站成一圈,顺时针编号1至n.从1号同学开始顺时针1/2报数,报到1的同学留在原地,报到2的同学退出圆圈,直到只剩一名同学为止.问最后剩下的同学编号. 输入格 ...

  4. Java实现 蓝桥杯 算法训练 寻找数组中最大值

    算法训练 寻找数组中最大值 时间限制:1.0s 内存限制:512.0MB 提交此题 问题描述 对于给定整数数组a[],寻找其中最大值,并返回下标. 输入格式 整数数组a[],数组元素个数小于1等于10 ...

  5. Java实现 LeetCode 357 计算各个位数不同的数字个数

    357. 计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11, ...

  6. Java实现 LeetCode 120 三角形最小路径和

    120. 三角形最小路径和 给定一个三角形,找出自顶向下的最小路径和.每一步只能移动到下一行中相邻的结点上. 例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] ...

  7. (十)HTTP.sys远程代码执行

    01 漏洞描述 上篇文章介绍了Host头攻击,今天我们讲一讲HTTP.sys远程代码执行漏洞. HTTP.sys是Microsoft Windows处理HTTP请求的内核驱动程序,为了优化IIS服务器 ...

  8. 源码分析(5)-ArrayList、Vector和LinkedList(JDK1.8)

    一.概述 1.线程安全:ArrayList和LinkedList非线程安全的.Vector线程安全的. 2.底层数据结构:ArrayList和Vector底层数据结构是数组:LinkedList双向链 ...

  9. AbstractCollection类中的 T[] toArray(T[] a)方法源码解读

    一.源码解读 @SuppressWarnings("unchecked") public <T> T[] toArray(T[] a) { //size为集合的大小 i ...

  10. 4k壁纸

    4k