linux系统oracle执行txt脚本,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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值