部分:查询最佳应践

作者:

Przemyslaw Piotrowski

首先,熟悉

Oracle­Python

连接性的基本概念

2007

9

月发布

参见系列目录

Python

做事方式的核心原则中,有一个规定是要求具有到

API

的高级接口。数据库

API

(在此例中为

Oracle API

)就是一个例子。

使用

Computronix

cx_Oracle Python

模块,您可以在维持与

Python

数据库

API

规范

v2.0

的兼容性的同时,控制

Oracle

的查询模

型。

对于所有遵循该规范的客户端库而言,使用

DB API 2.0

查询数据库的模型都是一致的。在此基础上,

cx_Oracle

的主要开发人员

Anthony T

uininga

添加了一组丰富的属性和方法,以向开发人员揭示

Oracle

独有的特性。仅用标准的方法而忘掉

额外的

方法是绝对

可能的,但在本文中您不会这么做。通用数据库包装这一概念可能在某些情况下起作用,但与此同时,您会失去

RDBMS

提供的所有

优化。

DB API 2.0

cx_Oracle

介绍

Python

数据库

API

规范

v2.0

是集体努力的成果,用于统一不同数据库系统的访问模型。拥有一组相对较少的方法和属性,在更换数

据库供应商时就易于学习并保持一致。它不以任何方式将数据库对象映射到

Python

结构中。用户仍然需要手工编写

SQL

。在更换到

另一数据库后,此

SQL

可能需要重新编写。尽管如此,它还是出色妥善地解决了

Python

数据库的连接性问题。

该规范定义了

API

的各个部分,如模块接口、连接对象、游标对象、类型对象和构造器、

DB API

的可选扩展以及可选的错误处理机

制。

数据库和

Python

语言之间的网关是连接对象。它包含制作数据库驱动的应用程序所需的全部组件,不仅符合

DB API 2.0

,而且是规

范方法和属性的一个超集。在多线程的程序中,模块和连接可以在不同线程间共享,但是不支持游标共享。这一限制通常是可接受

的,因为共享游标可能带来死锁风险。

Python

大量使用了异常模型,

DB API

定义了若干标准异常,它们在调试应用程序中的问题时会非常有用。下面是一些标准异常,同

时提供了原因类型的简要说明:

Warning

数据在执行插入操作时被截断,等等

Error

这里提到的除

Warning

外的所有异常的基类。

InterfaceError

数据库接口而非数据库本身故障(本例为

cx_Oracle

问题)

DatabaseError

严格意义上的数据库问题

DataError

包含如下结果数据的问题除数为

0

,值超出范围等

OperationalError

与编程人员无关的数据库错误:连接丢失、内存分配错误、事务处理错误等

IntegrityError

数据库的关系完整性受到了影响,例如,外键约束失败

InternalError

数据库遇到内部错误,例如,游标无效、事务不同步

ProgrammingError

未找到表、

SQL

语句中的语法错误、指定参数的数量错误等

NotSupportedError

调用的

API

部件并不存在

连接过程首先从连接对象开始,这是创建游标对象的基础。除游标操作外,连接对象还使用

commit()

rollback()

方法对事务进行管

理。执行

SQL

查询、发出

DML/DCL

语句和获取结果这些过程均受游标控制。

在游标和连接类的实现中,

cx_Oracle

对标准的

DB API 2.0

规范进行了最大程度的扩展。如果需要,所有这些扩展都将在文本中清楚

地标记。

入门

在使用查询和游标之前,首先需要建立数据库连接。提供凭证和数据源名称的方法有多种,其结果都是相似的。在从下面的

Python

交互式会话提取的内容中,连接对象

db

db1

db2

都是等同的。

makedsn()

函数根据给定的参数值创建一个

TNS

条目。此处将它

赋值给变量

dsn_tns

。如果环境设置得当,您可以使用更短的形式

cx_Oracle.connect('hr/hrpwd')

,从而省略用于

db

db1

的简单

连接字符串。

python做数据分析需要oracle_精通 Oracle+Python,第 1 部分:查询最佳应践相关推荐

  1. python做数据分析的包_用Python做数据分析,Numpy,Pandas,matp

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 用Python做数据分析,Numpy,Pandas,matplotlib是怎么也绕不开的三个包,我最开始学习pandas是看的<利用Python进行 ...

  2. 如何用python做数据分析统计服_使用python实现数据分析

    1:文件内容格式为json的数据如何解析import json,os,sys current_dir=os.path.abspath(".") filename=[file for ...

  3. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    作者:Przemyslaw Piotrowski 首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 参见系列目录 在 Python 做事方式的核心原则中,有一个规定是 ...

  4. python查询最高分_精通 Oracle+Python,第 1 部分:查询最佳应践

    在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Oracle API)就是一个例子.使用 Computronix 的 cx_Oracle ...

  5. 如何用python做数据分析实战_10分钟实战python简单数据分析

    进行数据分析,首先我们要知道python会用到的库:Pandas库.Matplotlib库. 数据分析的基本过程分为:提出问题.理解数据.数据清洗.构建模型.数据可视化. (1)提出问题:明确分析的目 ...

  6. python cursor游标_精通 Oracle+Python,第 1 部分:查询最佳应践

    首先,熟悉 Oracle-Python 连接性的基本概念 2007 年 9 月发布 在 Python 做事方式的核心原则中,有一个规定是要求具有到 API 的高级接口.数据库 API(在此例中为 Or ...

  7. Python做数据分析有哪些优势?

    近年来,数据分析正在改变我们的工作方式,数据分析的相关工作也越来越受到人们的青睐.很多编程语言都可以做数据分析,比如Python.R.Matlab等,Python凭借着自身无可比拟的优势,被广泛地应用 ...

  8. python 数据分析学什么-利用Python做数据分析 需要学习哪些知识

    根据调查结果,十大最常用的数据工具中有八个来自或利用Python.Python广泛应用于所有数据科学领域,包括数据分析.机器学习.深度学习和数据可视化.不过你知道如何利用Python做数据分析吗?需要 ...

  9. 用python做数据分析,安装包一次到位

    用python做数据分析 安装包一次到位 pip install numpy pandas scipy matplotlib sklearn lxml re requests bs4 tushare ...

最新文章

  1. 透明物体分割学习笔记
  2. linux java 生成证书_Java 制作证书(Windows 和Linux)
  3. gns3 1.3.9升级到gns3 1.3.11后,升级gns3 iouvm解决版本不匹配问题
  4. java class is frozen_利用javassit简单操作class文件 1
  5. jvm 垃圾收集算法_JVM垃圾收集和优化
  6. java后端通过Filter过滤器解决跨域问题
  7. 你好,欢迎来到我的空间,
  8. 为nopcommerce自定义用户积分功能(1)
  9. iOS 后台运行实现总结
  10. hihocoder-1623-有歧义的号码
  11. 软件测试理论思维导图
  12. 有道无术,术可求;有术无道,止于术
  13. JSP空间上当受骗篇
  14. [渝粤教育] 苏州农业职业技术学院 日语会话基础 参考 资料
  15. HDU 4509 hash
  16. 【材料整理】 -- DTI相关知识点
  17. 研究生计算机学院换研究方向不换导师,南邮自杀研究生曾抱怨“导师不让毕业” 导师被停职...
  18. 华为云虚拟专用网络VPN,助力现代企业云上业务创新发展 为助力企业实现创新发展
  19. 上海盲人计算机培训,上海市阳光康复中心盲人定向行走培训项目助视障人士走出家门——点亮希望之光 照亮盲人世界...
  20. Realtek WiFi 模块受严重漏洞影响

热门文章

  1. OpenShift 4 - Pod 优先级
  2. OpenShift 4 之Istio-Tutorial (9) 访问限流
  3. Microsoft Blazor Platz.SqlForms开源——使用架构生成器设计和维护SQL Server数据库
  4. Node.js 14 发布,改进了诊断功能
  5. Linus 将 Linux 的软盘驱动 floppy 标记为“孤立”状态
  6. 超炫酷的 Docker 终端 UI lazydocker,想看哪里点哪里
  7. 在静态SQL中实现动态WHERE子句
  8. 这样做动画交互,一点都不费力
  9. 将a数组部分给b数组c语言,C语言第6章1 数组.ppt
  10. kdump需要开启吗_iPhone全新黑科技!用嘴玩手机!你会玩吗?