Shell 脚本 - 匿名块
Shell Scripting - Anonymous Block
我有一个执行特定任务并退出的过程。
该过程必须复制到大约 40 个数据库,这将 运行 这个过程。
我担心的是,如果整个过程都发生了变化,那么每一个程序都必须改变。
如何创建一个接受输入的 shell 脚本
username, password and SID and 运行s an anonymous block (同样的程序转换为匿名块并放在服务器上)
它 运行 就这样了。
这是我有时使用的代码:
dbs_list="
DB1.USR1
DB2.USR2
"
for x in ${dbs_list}
do
DB_=` echo ${x}|cut -f "1" -d . `
USR=` echo ${x}|cut -f "2" -d . `
echo "################################ #### "
echo "#processinb ${USR} @ ${DB_} -- ...#"
echo "enter password:"
read -s PWD
sqlplus ${USR}/${PWD}@${DB_} << _EOF
set serveroutput on
prompt HERE is my anonymous code block
begin
dbms_output.put_line('do my things');
end;
/
_EOF
done
注意重要性:
- 在 PLSQL 代码块的末尾有这个
/
东西
- 在 sqlplus pseudo-file 块(或所谓的著名 Here-document )
之后的行的最开头有最后一个 _EOF
希望对您有所帮助。
我有一个执行特定任务并退出的过程。 该过程必须复制到大约 40 个数据库,这将 运行 这个过程。 我担心的是,如果整个过程都发生了变化,那么每一个程序都必须改变。
如何创建一个接受输入的 shell 脚本 username, password and SID and 运行s an anonymous block (同样的程序转换为匿名块并放在服务器上) 它 运行 就这样了。
这是我有时使用的代码:
dbs_list="
DB1.USR1
DB2.USR2
"
for x in ${dbs_list}
do
DB_=` echo ${x}|cut -f "1" -d . `
USR=` echo ${x}|cut -f "2" -d . `
echo "################################ #### "
echo "#processinb ${USR} @ ${DB_} -- ...#"
echo "enter password:"
read -s PWD
sqlplus ${USR}/${PWD}@${DB_} << _EOF
set serveroutput on
prompt HERE is my anonymous code block
begin
dbms_output.put_line('do my things');
end;
/
_EOF
done
注意重要性:
- 在 PLSQL 代码块的末尾有这个
/
东西 - 在 sqlplus pseudo-file 块(或所谓的著名 Here-document ) 之后的行的最开头有最后一个
_EOF
希望对您有所帮助。