当前位置:首页 » 编程语言 » oracle批量执行sql脚本
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle批量执行sql脚本

发布时间: 2022-03-31 13:10:55

A. 求一个oracle执行多个sql脚本文件的批处理命令

做个vbs脚本吧,创建个记事本,后缀改成.vbs,键入以下代码,保存后双击vbs文件即可。
-----------------------------------------------------
-----------------------------------------------------

Dim WshShell, oExec
Set WshShell = CreateObject("WScript.Shell")'创建脚本对象
Set oExec = WshShell.Exec("sqlplus -S scott/tiger @D:\a.sql")'-s是不回显,然后跟用户名和密码,之后是sql语句路径
Set oExec = WshShell.Exec("sqlplus -S scott/tiger @D:\b.sql")

-----------------------------------------------------
-----------------------------------------------------

STT@orcl->conn / as sysdba
已连接。
SYS@orcl->@d:\a.sql

SYSDATE
--------------
23-2月 -09

已用时间: 00: 00: 00.01

具体时间
-----------------
20090223 16:11:16

已用时间: 00: 00: 00.00

/*
@也可以用start替换,后面跟脚本的路径就可以了
--a.sql中的语句如下
SELECT SYSDATE FROM al;
SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') 具体时间 FROM al;
*/

B. 如何用PL/SQL在oracle下执行多个SQL脚本

1.把所有的文件都放在同一个目录下,然后在命令行里执行命令:
c:>dir/b > d:/all.sql
把所有的sql文件名都输出到一个sql文件中。
2.用UltraEdit打开生成的sql文件,alt+C切换到column mode,给所有的行前都添加一个“@”,保存。
3.在sqlplus中执行“@d:/all.sql”

C. oracle如何批量执行某个文件夹下面的多个.sql脚本

为什么我在cmd窗口中输入sqlplus user/pass为报错

D. 如何批量执行sql文件

首先把所有的sql文件准备好
再准备一个全部执行的sql文件All.sql,内容如下:
@E:/YLC/SQL/cybb/NEW/T_THSOFT_ZJBFYSB.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_XMZJJK.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_USER.sql
@E:/YLC/SQL/cybb/NEW/T_THSOFT_SGJFTJKM.sql
@E:/YLC/SQL/cybb/NEW/1T_THSOFT_HBZJBDQKB.sql
@E:/YLC/SQL/cybb/NEW/2T_THSOFT_YSDWJFMXB.sql
@E:/YLC/SQL/cybb/NEW/3T_THSOFT_YSDWJFHZB.sql
@E:/YLC/SQL/cybb/NEW/4T_THSOFT_BMJSMXZB.sql
@E:/YLC/SQL/cybb/NEW/5T_THSOFT_BMJSFDWMXB.sql
@E:/YLC/SQL/cybb/NEW/6T_THSOFT_YSZXJDB.sql
@E:/YLC/SQL/cybb/NEW/7T_THSOFT_XMZJZXJDB.sql
@E:/YLC/SQL/cybb/NEW/8T_THSOFT_XMZJZXMXB.sql
@E:/YLC/SQL/cybb/NEW/9T_THSOFT_ZJCLB.sql
@E:/YLC/SQL/cybb/NEW/1PRC_T_THSOFT_HBZJBDQKB.sql
@E:/YLC/SQL/cybb/NEW/2PRC_T_THSOFT_YSDWJFMXB.sql
@E:/YLC/SQL/cybb/NEW/3PRC_T_THSOFT_YSDWJFHZB.sql
@E:/YLC/SQL/cybb/NEW/4PRC_T_THSOFT_BMJSMXZB.sql
@E:/YLC/SQL/cybb/NEW/5PRC_T_THSOFT_BMJSFDWMXB.sql
@E:/YLC/SQL/cybb/NEW/6PRC_T_THSOFT_YSZXJDB.sql
@E:/YLC/SQL/cybb/NEW/7PRC_T_THSOFT_XMZJZXJDB.sql
@E:/YLC/SQL/cybb/NEW/8PRC_T_THSOFT_XMZJZXMXB.sql
@E:/YLC/SQL/cybb/NEW/9PRC_T_THSOFT_ZJCLB.sql
exit

然后再写一个demo.bat文件
::sqlplus system/Oracle@xe @d:/all.sql>d:/log.txt
sqlplus system/oracle@xe @d:/all.sql
第一行可用于执行过程中的信息保存到log.txt文件中,如果不需要保存日志信息,则可以使用第二行的代码

E. 如何批量执行某个文件夹下所有的 sql脚本

1,先把sql脚本名字全部取出来 2,追加到一个文本文件里名字 yy.sql,比如 xx1.sql 就写 @@xx1.sql @@xx2.sql 3,在文件目录下新建一个bat文件内容如下 sqlplus user/pwd@sid @yy.sql >tt.log 4,双击bat文件运行,就可以批量执行 注意,每个sql脚本文件里面的最后一行必须有 /

F. oracle 如何连续执行多条sql 语句

可以建立一个脚本文件,然后在执行脚本文件就可以了

G. Oracle中怎样一次执行多条sql语句

有时我们需要一次性执行多条sql语句,而用来更新的sql是根据实际情况用代码拼出来的
解决方案是把sql拼成下面这种形式:
begin
update TB_VG set seq = 1, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20837' and train_id = '0233086';
update TB_VG set seq = 2, vessel_id = 'Jin14', vessel_type = 'TRACK' where batch_number = '20992' and train_id = '0233110';
end;
总结如下:
以begin开始,以end;结尾(end后的分号不能省),中间的每个sql语句要以分号;结尾
在实际编码中,发现即使这样也会有错误发生,把sql语句中的换行符替换成空格就可以了
比较稳妥的编码方式是:
1、以正常的方式编写sql,根据阅读与编写的需要,中间肯定会有换行符
2、在执行之前进行替换:strSql = strSql.Replace("r\n", " ").Replace('\n', ' ');
如果不采用这种方式,可能的异常有:
ORA-00933: SQL 命令未正确结束(如果sql没有以分号结尾)
ORA-00911: 无效字符(如果未加begin 和 end)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 "end-of-file"在需要下列之一时:......(如果end后面没有;分号)
ORA-06550: 第x行, 第xxx列: PLS-00103: 出现符号 ""在需要下列之一时:......(语句之间有换行符)

H. 怎样在sqlplus中批量执行sql文件

Oracle批量执行SQL文件

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:spooloff(此时a.log中所有日志已经写入完毕)
7:exit退出sqlplus
当然只有一个sql文件,但是里面有多个insert语句,数据量非常大,此时也可以在命令状态下执行,前4步是一样的,第五步就是@文件名.sql;

I. Oracle怎么设置同时执行多条SQL语句

多个线程发过去,才能多条语句并发执行。单线程向OR服务器发SQL指令的话,就应该是按顺序进行,否则很多SQL的执行都会乱套,比如还没建立表就开始追加数据什么的。

也就是说,要并发执行SQL语句,请使用多个客户端向服务器发送SQL指令,或单个客户端中多线程向服务器发送SQL指令。也可以用定时事务来做到多个SQL并发执行。

J. Oracle 批量执行多个sql文件

方法如下:
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;