Oracle 批量执行多个sql文件

Oracle批量执行多个sql文件,需求1:若其中一个失败,则停止执行后续的文件;需求2:若其中一个失败则全部回滚。求大神帮忙。脚本如下:@D:\workspacefor... Oracle 批量执行多个sql文件,
需求1:若其中一个失败,则停止执行后续的文件;
需求2:若其中一个失败则全部回滚。
求大神帮忙。
脚本如下:
@D:\workspaceforpafa5\db\MACCO1\pama-core2.0.0\ocoreamsdata\SR_442844_11_ocoreamsdata_tab_mas_ex-zhongkai001-0707.sql
@D:\workspaceforpafa5\db\MACCO1\pama-core2.0.0\ocoreamsdata\SR_442844_12_ocoreamsdata_ind_mas_ex-zhongkai001-0707.sql
@D:\workspaceforpafa5\db\MACCO1\pama-core2.0.0\ocoreamsdata\SR_442844_13_ocoreamsdata_syn_mas_ex-zhongkai001-0707.sql
展开
 我来答
千锋教育
2016-01-15 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
  方法如下: 
  1:运行cmd进入命令行界面
  2:进入到存放批量sql的文件夹下面
  3:输入命令 sqlplus 数据库名/密码@数据库 按回车键
  4:输入spool 指定路径:\a.log 按回车键 (此步骤的主要作用就是追踪批量执行sql的日志,路径随便写,只要能找到就行,a.log可以随便起名,但是必须要.log后缀)
  5:@start.sql 按回车键(在批量sql文件夹下写一个文件,名字叫start.sql,其中在这个文件里面写批量sql的文件名)
  具体格式如下:@@sql的文件名.sql;
  @@sql的文件名2.sql;
  6:spool off (此时a.log中所有日志已经写入完毕)
  7:exit 退出sqlplus
  当然只有一个sql文件,但是里面有多个insert语句,数据量非常大,此时也可以在命令状态下执行,前4步是一样的,第五步就是@文件名.sql;
wenkuxl
推荐于2017-12-16 · TA获得超过112个赞
知道小有建树答主
回答量:161
采纳率:100%
帮助的人:127万
展开全部
你可以再写一个回滚11_ocoreamsd、12_ocoreamsd、13_ocoreamsd的脚本,例如rollback_all.sql;

然后,创建一个状态table,例如:
create table t_script_status(script_id number(10), script_status varchar2(20));
insert into t_script_status (script_id, script_status) values(11, 'not run');
insert into t_script_status (script_id, script_status) values(12, 'not run');
insert into t_script_status (script_id, script_status) values(13, 'not run');
commit;

然后,分别在11_ocoreamsd、12_ocoreamsd、13_ocoreamsd中添加代码,如果没有错误或异常,则更新t_script_status,把脚本自己对应的那一行的状态,由'not run'改为'successful';

然后,创建一个存储过程,里面首先执行11_ocoreamsd,检查t_script_status,如果对应的状态仍为'not run',则表明11_ocoreamsd有错误或异常,则执行rollback_all.sql;如果是'successful',则继续执行12_ocoreamsd;如此类推。

可能有点繁琐,希望对您有用阿。
更多追问追答
追问
这样子做太繁琐了,可以不回滚,出错则直接停止执行后续脚本的命令有么
追答
您分别在11_ocoreamsd、12_ocoreamsd、13_ocoreamsd中添加脚本,如果出现异常则直接终止即可。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式