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

oracle批量执行sql文件

发布时间: 2022-06-30 03:56:05

㈠ 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;

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

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

㈢ 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: 出现符号 ""在需要下列之一时:......(语句之间有换行符)

㈣ oracle中怎样执行.sql文件

建议使用plsql工具来连接Oracle数据库进行表操作,这样很方便的,就像使用sqlserver一样方便

㈤ 怎么把数据批量导入oracle中

方法很多,看不同的需要,不同的场景
1,直接从excel粘贴复制,数据尽量少,没有大字段的情况下可行,在PLSQL Developer中操作
2,imp方式,这个可以用命令的形式,也可以借助PLSQL Developer图形化操作界面
3,可以通过PLSQL Developer的“工具—导入文本”这个可以导入csv,txt格式的数据
4,通过其他工具进行导入XlsToOra这款工具
5,通过外部程序,比如用java或c#语言实现数据的读取和导入。
目前我过的就是这几种,欢迎大家继续补充。

㈥ 怎样在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:spool off (此时a.log中所有日志已经写入完毕)
7:exit 退出sqlplus
当然只有一个sql文件,但是里面有多个insert语句,数

㈦ oracle批量执行sql文件为什么快

因为可以把批量的sql进行预编译 放在数据库内存中 如果调用 直接向数据库发送命令就可以了

㈧ 一个sql文件里能不能放多个select,update等语句

可以的。每个语句必须是完整的sql语句,并且update insert 和delete 的语句后一定要有 commit;

比如:
select * from table_name ;

update table_name
set name = 'a'
where id = 1 ;
commit ;

insert into table_name(id,name)
values(2,'b');
commit ;

alter table table_name
add age number(5) ;

delete table_name
where id = 1 ;
commit;

这些语句都可以在一个.sql文件中

㈨ 如何批量执行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文件中,如果不需要保存日志信息,则可以使用第二行的代码