批量执行oracle数据库脚本
windows下批量执行sql:
方法一:
install.bat文件内容
@echo off
set NLS_LANG=.AL32UTF8
echo Begin to uninstall frame scripts
call sqlplus -S /nolog @./script_AAA/install.sql
pause
install.sql文件内容
spool ./script_AAA/install.log
connect AAA/AAA@ORCL
@@././script_AAA/install/oracle_AAA_install.sql
spool off
exit;
配置及需要注意的:
1. 只需要修改install.sql中的connect命令后的内容,改为”数据库用户/数据库密码@SID“
2. 建议sql文件统一使用UTF-8字符,这块如果脚本中有大量中文那么在开发之前考虑会节约不少时间。(如果在后期改编码建议使用eclipse或其他更好的工具)
3. install.sql脚本中可以执行多个sql, 这些多个sql文件中每个末尾commit操作就行了,不需要有退出操作,否则会导致后面的脚本没有执行
方法二:
install.bat文件内容
@echo off
echo Please input user name
set /p user=
echo Please input password
set /p password=
echo Please input tnsnames
set /p tnsnames=
echo Begin to load OracleAAA scripts
call sqlplus -S %user%/%password%@%tnsnames% @oracle_AAA_install.sql
pause
配置及需要注意的:
1. 配置参数由用户在命令窗口输入,比较HI
2. 也没有遇到字符编码问题
linux下批量执行sql:
方法一:
install.sh文件内容
#!/bin/ksh
# 调用格式:
# oracle_AAA_sql.sh username password tnsname
# 必须保证调用顺序!
echo Begin to load BME scripts
sqlplus ${1}/${2}@${3} @oracle_AAA_install.sql
配置及需要注意的:
1. 执行时后面带上用户名,密码,SID即可
方法二:
install.sh文件内容
#!/bin/bash
export NLS_LANG=.AL32UTF8
echo Begin to load frame scripts
sqlplus /nolog @./script_AAA/install.sql
install.sql文件内容
与windows的方法一中的install.sql内容一致