模块安装

  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. 安全性只是辅助效果?解读DevSecOps的核心动机

    DevSecOps背后的思想仅是对DevOps的扩展.就像开发人员以瀑布式开发风格将项目扔给运营团队以使其在生产中工作一样,即使使用“ DevOps”,安全性也与应用程序开发或运营完全分开. DevS ...

  2. Hadoop Yarn REST API未授权漏洞利用

    Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...

  3. XStream学习手册

    ​​ 一.前言 1.XStream官网 http://x-stream.github.io 2.XStream是什么 XStream是一个简单的基于Java的类库,用来将Java对象序列化成XML(J ...

  4. Java实现 LeetCode 654 最大二叉树(递归)

    654. 最大二叉树 给定一个不含重复元素的整数数组.一个以此数组构建的最大二叉树定义如下: 二叉树的根是数组中的最大元素. 左子树是通过数组中最大值左边部分构造出的最大二叉树. 右子树是通过数组中最 ...

  5. Java中构造方法的详细介绍

    构造方法是一个特殊的方法 它会在实例化对象时自动调用 构造方法的定义 必须同时满足下面的三个条件 方法名与类名相同 方法名前面没有返回值类型的声明 在方法中不能使用return语句返回值 class ...

  6. java实现 洛谷 P1540 机器

    import java.util.LinkedList; import java.util.Scanner; public class Main { private static Scanner ci ...

  7. java实现机器人行走

    某少年宫引进了一批机器人小车.可以接受预先输入的指令,按指令行动.小车的基本动作很简单,只有3种:左转(记为L),右转(记为R),向前走若干厘米(直接记数字). 例如,我们可以对小车输入如下的指令: ...

  8. java实现蓝桥杯密码脱落

    一 问题描述 X星球的考古学家发现了一批古代留下来的密码. 这些密码是由A.B.C.D 四种植物的种子串成的序列. 仔细分析发现,这些密码串当初应该是前后对称的(也就是我们说的镜像串). 由于年代久远 ...

  9. java实现第七届蓝桥杯煤球数量

    煤球数量 煤球数目 有一堆煤球,堆成三角棱锥形.具体: 第一层放1个, 第二层3个(排列成三角形), 第三层6个(排列成三角形), 第四层10个(排列成三角形), - 如果一共有100层,共有多少个煤 ...

  10. java实现第七届蓝桥杯愤怒小鸟

    愤怒小鸟 题目描述 X星球愤怒的小鸟喜欢撞火车! 一根平直的铁轨上两火车间相距 1000 米 两火车 (不妨称A和B) 以时速 10米/秒 相对行驶. 愤怒的小鸟从A车出发,时速50米/秒,撞向B车, ...