sqlPlus批量运行sql文件
1、创建一个总的SQL文件,当你存在多个文件需要进行通过sqlplus进行sql导入的时候,可以先创建一个list.sql
- 例:当存在a.sql b.sql 可以在list.sql文件中写@/路径/sql文件名
- 之后通过sqlplus运行list.sql
- @/路径/文件名
2、sqlplus批量导入sql文件 shell脚本
#!/bin/bash
targetDir='/program/nwom/Inspur/apps/new_tomcat/湖南sql/sql/*.sql'
filelist=`ls ${targetDir}`
files=""
for file in ${filelist}
do
files=${files}"prompt start insert file:${file}\n"@${file}"\n"
done
files=`echo -e ${files}`
sqlplus nwom/nwom_0ssd@nwom <<EOF
set colsep' ';
set echo off;
set feedback off;
set heading off;
set pagesize 0;
set termout off;
set trimout on;
set trimspool on;
$files
commit;
exit;
EOF
3、自动输出list.sql的shell脚本
#!/bin/bash
targetDir='/program/nwom/Inspur/apps/new_tomcat/湖南sql/sql/*.sql'
filelist=`ls ${targetDir}`
files=""
for file in ${filelist}
do
files=${files}"prompt start insert file:${file}\n"@${file}"\n"
echo ${files} > new .sql
done
files=`echo -e ${files}`
sqlplus nwom/nwom_0ssd@nwom <<EOF
set feed off
set heading off;
set feedback off;
set verify off;
@/program/nwom/Inspur/apps/new_tomcat/湖南sql/new4.sql;
commit;
exit;
EOF
4、当我们所需要插入的数据太长的时候,我们可以采用dmp文件的形式进行上传。
在linux文件中进行运行dmp文件
imp nwom/nwom_0ssd@10.154.14.84:1521/nwom file=/program/nwom/Inspur/apps/new_tomcat/湖南sql/dmp/ods_cfg_district.dmp fromuser=YN_SCHEDULE touser= YN_SCHEDULE buffer=20480000 commit=y log=/program/nwom/Inspur/apps/new_tomcat/湖南sql/dmp/test.log ignore=y
注:当在linux系统中文件的文件名是以括号或者是特殊字符结尾的时候,我们需要用/来进行隔断,保证系统的识别,或者是对文件进行重命名