可以同时执行多个语句,但它是半hacky.您需要包装语句并一次执行一个语句.

>>> import cx_Oracle

>>>

>>> a = cx_Oracle.connect('schema/pw@db')

>>> curs = a.cursor()

>>> SQL = (("""create table tmp_test ( a date )"""),

... ("""insert into tmp_test values ( sysdate )""")

... )

>>> for i in SQL:

... print i

...

create table tmp_test ( a date )

insert into tmp_test values ( sysdate )

>>> for i in SQL:

... curs.execute(i)

...

>>> a.commit()

>>>

正如您所指出的,这并不能解决分号问题,因为没有简单的答案.在我看来,你有3个选择:

>编写一个过于复杂的解析器,我认为这根本不是一个好选择.

>不要从Python执行SQL脚本;将代码放在单独的SQL脚本中,以便解析很容易,在单独的Python文件中,嵌入在Python代码中,在数据库中的过程中…等等.这可能是我的首选选项.

>使用子进程并以这种方式调用脚本.这是最简单,最快捷的选项,但根本不使用cx_Oracle.

>>> import subprocess

>>> cmdline = ['sqlplus','schema/pw@db','@','tmp_test.sql']

>>> subprocess.call(cmdline)

SQL*Plus: Release 9.2.0.1.0 - Production on Fri Apr 13 09:40:41 2012

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:

Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

SQL>

SQL> CREATE TABLE FOO(id number);

Table created.

SQL>

SQL> BEGIN

2 INSERT INTO FOO VALUES(1);

3 INSERT INTO FOO VALUES(2);

4 INSERT INTO FOO VALUES(3);

5 END;

6 /

PL/SQL procedure successfully completed.

SQL> CREATE TABLE BAR(id number);

Table created.

SQL>

SQL> quit

Disconnected from Oracle Database 11g Release 11.2.0.1.0 - 64bit Production

0

>>>

python 文件 解析ddl_使用python中的cx_Oracle使用PL / SQL和DML / DDL解析SQL文件相关推荐

  1. hosts文件的作用以及hosts中多个ip映射一个域名地址的解析顺序

    hosts的作用:   当我们访问网站时,要首先通过DNS服务器把网络域名(www.xx.com)解析成IP地址,我们的计算机才能访问.如果对于每个域名请求我们都要等待域名服务器解析后返回IP信息,这 ...

  2. python编写脚本替换 jar包文件_shell-替换jar包中配置文件脚本

    脚本运行平台:centos7.3 1.编写脚本 vi /tmp/change.sh #!/bin/bash #需要替换的包名称 bmc=$1 #需要替换的文件名称 hhwjmc=$2 #找到替换文件路 ...

  3. python操作json_如何使用Python处理JSON数据

    如何使用Python处理JSON数据?本篇文章就给大家介绍使用Python处理JSON数据的基本方法.有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助. 在介绍使用Python处理JSO ...

  4. python实战:22个Python迷你项目(附源码)【建议收藏】

    在使用Python的过程中,我最喜欢的就是Python的各种第三方库,能够完成很多操作. 下面就给大家介绍22个通过Python构建的项目,以此来学习Python编程. 大家也可根据项目的目的及提示, ...

  5. python cron_你应该使用 Python 管理 Cron 作业

    在本教程中,你将了解 cron 作业的重要性以及为什么需要它们.你可以看一下 python-crontab,这是一个与 crontab 交互的 Python 模块.你将学习如何使用 python-cr ...

  6. win10无法装载iso文件_在Win10系统中如何装载ISO镜像文件?

    windows 10系统在默认未解压的状态下是以iso格式存在的镜像文件.在Win10系统中该如何装载win10系统的镜像呢?一般来说iso文件都是在DVD光盘中的文件,但大多数的用户都已经不适用DV ...

  7. 将SQL Server表导出为txt文件

    方法-:用BCP命令 bcp 实用工具 Sqlclub.cn bcp 实用工具在 Microsoft® SQL Server™ 2000 实例和数据文件之间以用户指定的格式复数据. 语法 Sqlclu ...

  8. python中返回上一步操作_通过实例解析Python文件操作实现步骤

    当程序运行时,变量是保存数据的好方法,但变量.序列以及对象中存储的数据是暂时的,程序结束后就会丢失,如果希望程序结束后数据仍然保持,就需要将数据保存到文件中. Python 提供了内置的文件对象,以及 ...

  9. python中json模块_Python使用内置json模块解析json格式数据的方法

    本文实例讲述了Python使用内置json模块解析json格式数据的方法.分享给大家供大家参考,具体如下: Python中解析json字符串非常简单,直接用内置的json模块就可以,不需要安装额外的模 ...

最新文章

  1. 知乎高赞:OracleJDK和OpenJDK有什么区别?网友:不愧是大神的回答~
  2. 小端字节序与大端字节序
  3. 2020-11-23(彻底理解KMP)
  4. Xamarin.Forms教程Android SDK工具下载安装
  5. C# #if, #else和#endif预处理指令
  6. PDB调试Python程序
  7. 模式识别中的特征提取及其内在意义
  8. java link 使用_Java数据结构之简单的连接点(link)实现方法示例
  9. ffmpeg添加到环境变量_在 Mac 上为 FFmpeg 配置环境变量
  10. 拓端tecdat|Python中的多项式回归拟合非线性关系实例
  11. springboot test
  12. 圆柱体积计算机公式,圆柱体积计算公式
  13. ICP(Iterative Closest Point)算法和Umeyama算法
  14. 漫画:从今天开始,我不再买书了!
  15. 科技圈以 A 取名的时尚潮流
  16. 为设计师写的色彩对比指南,让你真正了解色彩对比
  17. MacBook键盘锁定、按键失效问题
  18. Java 应用结构规范
  19. AmchartsJS版设置属性/方法总结
  20. 一个商品SKU是怎么生成的 1

热门文章

  1. Python 中print 和return 的区别
  2. Python中的构造方法
  3. 错误三次无法输入c语言,不懂就问,为啥错误输入三次不停止呢
  4. linux进程VSZ(虚拟内存)
  5. armel、armhf、arm64、armv7l 系统架构区别与联系(AArch64)
  6. python struct.pack()函数 (返回一个字节对象,其中包含根据格式字符串fmt打包的值v1,v2,...)
  7. Python 计算机视觉(二) —— OpenCV 基础
  8. Java多线程、高并发秒杀时MySQL出现死锁原因(Deadlock found when trying to get lock)及对应解决方案
  9. Spring重写BeanDefinitionRegistryPostProcessors进行扩展
  10. redhat php5 安装,完整的linux(RedHat)+php5.3.10+mysql5.5.19+apache2.2.22安装配置说明