在使用Oracle数据库的时候,经常会用到表结构、存储过程、视图以及表数据等等元素的导入和导出。如果在Windows的cmd窗口中使用sqlplus的命令登录Oracle后,直接使用@ sql导入文件路径
或者start sql导入文件路径
,就有一个缺陷:不会产生跟踪日志文件,这样就没法了解哪些sql语句执行成功了,哪些sql语句执行失败从而导致整个数据库初始化失败了等情况。另外,无论是在Windows系统还是Linux系统,手输命令很麻烦也很容易出错,所以自己整理了一份适用于Windows的bat批处理脚本和一份适用于Linux系统的shell脚本。
这两份脚本代码比较简单,主要是利用了sqlplus命令将包含多条sql语句用于初始化Oracle数据库的sql文件执行。其中,suntsm/[email protected]/orcl
是数据库用户名/用户密码@数据库IP:1521/实例名
的组合,当然Oracle默认的端口1521
可以省略。另外,tsmstuct.sql
和tsmdata.sql
文件分别用于初始化表结构等数据和表数据。大家可以根据实际情况修改。
1 初始化Oracle数据库的bat批处理脚本
直接贴上初始化Oracle数据库的bat批处理脚本的代码,比较简单。使用时,将这个IniOracle.bat文件、tsmstuct.sql和tsmdata.sql文件放在一起后,然后直接点击这个.bat文件即可。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 | :: 初始化Oracle数据库的bat批处理脚本(适用于Windows系统)
:: @FileName: IniOracle.bat
:: @Author : vfhky 2014.12.20 https://typecodes.com
:: @param : tsmstuct.sql 包含表结构等数据的文件
:: @param : tsmdata.sql 包含表数据的文件
@echo off
cls
title Init Oracle database
echo ---------------------------------Start Excute--------------------------------
echo ^| ^|
echo ^| ----1 Start Excute---- ^|
echo ^| suntsm/[email protected]/orcl @tsmstuct.sql ^>d:\tsmstuct.log ^|
sqlplus suntsm/[email protected]/orcl @tsmstuct.sql >d:\tsmstuct.log
echo ^| ----End---- ^|
echo ^| ^|
echo ^| ----2 Start Excute---- ^|
echo ^| sqlplus suntsm/[email protected]/orcl @tsmdata.sql ^>d:\tsmdata.log ^|
sqlplus suntsm/[email protected]/orcl @tsmdata.sql >d:\tsmdata.log
echo ^| ----End---- ^|
echo ^| ^|
echo ---------------------------------End Excute----------------------------------
pause
|
1.1 初始化Oracle数据库的bat批处理脚本的执行过程演示
1、点击IniOracle.bat文件后,先执行sqlplus suntsm/[email protected]/orcl @tsmstuct.sql >d:\tsmstuct.log
命令,生成的追踪日志文件是D盘下的tsmstuct.log。
2、执行成功后继续执行第二条命令:sqlplus suntsm/[email protected]/orcl @tsmdata.sql >d:\tsmdata.log
命令,生成的追踪日志文件是D盘下的tsmdata.log。
3、初始化Oracl数据库完成,可以通过tsmstuct.log和tsmdata.log文件查看执行情况。
2 初始化Oracle数据库的Shell批处理脚本
和bat批处理脚本一样,这里的shell脚本也是利用了sqlplus命令。唯一不同的是,由于Linux权限的问题,这个IniOracle.sh脚本代码会先判断是否已经存在了tsmstuct.log
和tsmdata.log
文件,并为它们赋予666可读、写的权限。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49 | #!/bin/sh
# -----------------------------------------
# 初始化Oracle数据库的shell批处理脚本(适用于类Unix系统)
# @FileName: IniOracle.sh
# @Author : vfhky 2014.12.20 https://typecodes.com
# @param : tsmstuct.sql 包含表结构等数据的文件
# @param : tsmdata.sql 包含表数据的文件
# 执行方法:./IniOracle.sh
# -----------------------------------------
# 为避免中文乱码,需要设置客户端字符集,使之与服务端字符集保持一致
export NLS_LANG='AMERICAN_AMERICA.ZHS32GB18030'
# 加载Oracle用户变量
source ~/.bashrc
# 判断日志文件是否存在,如不存在则新建一个空的日志文件
if [ ! -f "tsmstuct.log" ]; then
touch tsmstuct.log
fi
# 判断日志文件是否存在,如不存在则新建一个空的日志文件
if [ ! -f "tsmdata.log" ]; then
touch tsmdata.log
fi
# 日志文件赋权限
chmod 666 tsmstuct.log
# 日志文件赋权限
chmod 666 tsmdata.log
echo "数据初始化开始..."
echo "---------------------------------Start Excute--------------------------------"
echo "| |"
echo "| ----1 Start Excute---- |"
echo "| sqlplus suntsm/suntsm@suncard @tsmstuct.sql >tsmstuct.log |"
sqlplus suntsm/suntsm@orcl @tsmstuct.sql >tsmstuct.log
echo "| ----End---- |"
echo "| |"
echo "| ----2 Start Excute---- |"
echo "| sqlplus suntsm/suntsm@suncard @tsmdata.sql >tsmdata.log |"
sqlplus suntsm/suntsm@orcl @tsmdata.sql >tsmdata.log
echo "| ----End---- |"
echo "| |"
echo "--------------------------------End Excute-----------------------------------"
echo "数据初始话结束!详情请查看日志文件:tsmstuct.log和tsmdata.log"
|
2.1 初始化Oracle数据库的bat批处理脚本的执行过程演示
1、用Oracle身份登录Linux,然后通过命令./IniOracle
开始执行脚本中的代码。
2、执行成功后继续执行第二条命令,生成的追踪日志文件是当前目录下的tsmdata.log。
3、初始化Oracl数据库完成,可以通过tsmstuct.log和tsmdata.log文件查看执行情况。
4、查看生成的tsmstuct.log
和tsmdata.log
日志文件。
Comments »