python执行oracle的sql语句_在oracledb中执行SQL脚本一次执行一条语句
假设我有一个sql脚本,如下所示:--split statement 1
ALTER TABLE abs
ADD (make VARCHAR2(2 byte),
model varCHAR2(12 BYTE),
built_on DATE,
serial varchar2(123 BYTE));
/
--split statement 2
declare
begin
null;
end;
/
--split statement 3
insert into test (v,a,c)
values ('1','jjoe;','232');
--split statement 4
create or replace function BLAH_BLAH(i_in varchar2)
as
l_one varchar2(12);
l_two varchar2(12);
l_three varchar2(12);
begin
l_one := 1;
l_two := 3;
insert into test (v,a,b)
values ('1','jjoee;','232');
exception when no_data_found then
l_three := 3;
end;
/
基本上,脚本可以有DML、DCL、DDL和匿名块。我希望能够拆分每个语句并单独执行它们,但当然是按照它们出现的顺序。在
我想使用正则表达式,我相信逻辑应该是这样的:
1)如果字符串以create | alter | drop | declare开头,那么从字符串的开始到分号,然后是一个新行,然后是一个正斜杠(这里的关键是,如果出现匿名块,我们必须忽略DML,直到到达末尾)。在
2)如果字符串以insert | delete | update | merge开头(同样,如果我们已经在一个适用于需求1的块中,则忽略此字符串),则从该字符串的开始到分号,然后是一个没有正斜杠的新行。在
到目前为止,我用Python编写了以下内容:
^{pr2}$
但是每次我试图处理其他需求时,正则表达式就开始不起作用了(实际上输出有点奇怪),并且变得复杂到让我不知所措。在
我希望用Python或Java来实现这一点(如果这是一个oracle数据库,我想实际上最好是Java)
如果regex不能胜任这项任务,则不必是正则表达式。我的最终目标是分离每个语句并单独运行它,这样我就可以捕捉到出现的任何错误并优雅地处理它们。在
python执行oracle的sql语句_在oracledb中执行SQL脚本一次执行一条语句相关推荐
- flink sql 部署_在FlinkSQL中使用SQL client时,如何使用 query配置?
Flink的SQL客户机可以在启动时读取YAML配置文件,该文件可以包括空闲状态保留规范.例如,您可以通过 sql语言- client.sh嵌入式-e sql client-配置.yaml 配置文件包 ...
- java sql封装,在Java系统中封装SQL语言的处理方法及系统的制作方法
在Java系统中封装SQL语言的处理方法及系统的制作方法[ 技术领域: ][0001]本发明涉及计算机数据处理 技术领域: ,特别是涉及一种在Java系统中封装SQL语言的处理方法及系统.[ 背景技术 ...
- vba mysql 自动化错误_在Excel中运行VBA脚本时出现自动化错误
在Excel 2007中运行VBA代码时出现自动化错误.我尝试连接到远程SQL Server数据库并将数据从Excel加载到SQL Server.在Excel中运行VBA脚本时出现自动化错误 我得到的 ...
- ef 执行mysql语句_在EF中执行SQL语句
一.为什么要在EF中执行SQL语句 使用EF操作数据库,可以避免写SQL语句,完成使用Linq实现,但为什么还要在EF中执行SQL语句呢.如果要写SQL语句,完全可以使用ADO.NET来操作数据库.这 ...
- python连oracle数据库参数变量_带绑定字符串变量的Python cx_Oracle SQL
我在使用Python为Oracle数据库创建SQL查询时遇到了一个问题. 我想绑定字符串变量,但它不起作用,你能告诉我我做错了什么吗? 这是我的代码:import cx_Oracle dokList ...
- java执行sql文件_面试官:MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...
- 预编译sql查询语句_频繁查询重新编译– SQL查询性能杀手–检测
预编译sql查询语句 previous part of this article, we presented query recompilation basics. We explained when ...
- mysql 构造 linq语句_[转]查看LINQ生成SQL语句的几种方法
记录LINQ生成的SQL语句是常用的调试方式,而且能根据需要来优化LINQ生成的SQL语句,更能了深入的了解LINQ. DataContext的Log属性来将LINQ to SQL生成的SQL语句格式 ...
- mysql中以下正确的sql是_总结MySQL中SQL语法的使用
--where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...
最新文章
- Python3.5源码分析-内建模块builtins初始化
- JQ-CSS-实现导航菜单效果
- 基于tcp协议的socket
- 封装设置属性,一家人都要整整齐齐系列(1) JAVA泛型的实现原理
- 基于MATLAB的costas载波同步+gardner时间同步,QPSK调制
- CNN结构:场景分割与Relation Network
- java中bean的定义有哪些_详解Java的Spring框架中bean的定义以及生命周期
- 迅雷在P2P网络中的另类上传速度
- 支付宝小程序升级,一统阿里大生态!
- 启动mysql5.7异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
- python实现一个土豆聊天 potato chat 机器人
- 39个seo大师级经典案例
- PostgreSQL客户端认证配置
- win10解决已禁用输入法和隐藏中文简体美式键盘
- android studio USB连接华为手机不显示调试信息问题
- 百度移动:静悄悄的战争
- ToC产品和ToB产品的区别
- 企业群呼系统呼叫中心系统
- 【BLE MESH】PB-ADV入网详解
- 卷积与反卷积(转置卷积)关系的公式推导 及其各自的形式
热门文章
- Github-PAT(Personal Access Token)
- mvc html 辅助方法,MVC HTML辅助类常用方法记录
- html新标准,HTML 5新标准将会在2022年正式发布
- java jwks_OIDC中JWK,JWKS的介绍与使用
- 全网最全的Postman接口自动化测试
- 当公司辞掉85后测试员选择95后测试员后...
- 女孩子偷偷学好软件测试,想要年薪30w也没有很难!
- 黑群晖 断电 检测有bad sector_金属你不会以为回收就能直接再用吧,不是的,这些再生金属材料检测知识,很少人知道...
- firefox无法打开php,php – CORS无法在Firefox中运行
- 两个3*3*n旋转矩阵在第三维相乘