oracle 并行执行脚本,批量执行Oracle脚本
場景:linux上批量執行oracle腳本的shell腳本
linux下批量執行oracle腳本的shell腳本
#! /bin/bash -l
create_dbtable()
{
set -x
dbuser=$1
dbpassword=$2
sqlfile=$3
conn=${dbuser}/${dbpassword};
echo "create data of $dbuser..."
if [ ${dbuser} = 'sys' ]
then
conn="${conn} as sysdba";
fi
sqlplus "${conn}" <
whenever sqlerror exit 1;
@$sqlfile
EOF
if [ $? != 0 ]
then
echo "Error:execute ${sqlfile} error"
exit 1
fi
echo "execute ${sqlfile} completelly!"
}
main()
{
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
create_dbtable $*
if [ $? -ne 0 ];then
echo "Error:execute ${sqlfile} error"
exit 1
fi
echo "execute ${sqlfile} successfully."
}
main $*
將上述內容保存在create_database.sh中
BEGIN EXECUTE IMMEDIATE 'DROP TABLE T_NOTIFICATION_INFO'; EXCEPTION WHEN OTHERS THEN NULL; END;
/
/*==============================================================*/
/* TABLE: "T_NOTIFICATION_INFO" */
/*==============================================================*/
CREATE TABLE T_NOTIFICATION_INFO (
"SUBSCRIPTIONID" VARCHAR(36) NOT NULL,
"MANAGERREFERENCE" VARCHAR(2000),
"TIMETICK" INT,
"NOTIFICATIONCATEGORIES" VARCHAR(4000),
"FILTER" VARCHAR(4000),
"SUBSTATE" INT,
"ADDTIME" DATE,
CONSTRAINT PK_T_NOTIFICATION_INFO PRIMARY KEY ("SUBSCRIPTIONID")
);
將上述內容保存在createTable.sql中
1)root用戶登錄后
將create_database.sh,createTable.sql兩個文件上傳
2)修改create_database.sh文件可執行權限
chmod 775 create_database.sh
3)退出,用oracle用戶登錄
所在目錄下執行
./create_database.sh sys i2000db 'createTable.sql'
注:./create_database.sh 后面帶3個參數,根據實際情況調整
1 用戶名 sys
2 密碼?? i2000db
3 sql文件 createTable.sql
總結
以上是生活随笔為你收集整理的oracle 并行执行脚本,批量执行Oracle脚本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转专业学计算机难嘛,大学转专业容易吗 转
- 下一篇: ffmpeg 调整相片大小,如何使用ff