Shell Scripting - 匿名阻止

时间:2017-02-16 10:20:27

标签: sql shell plsql ksh

我有一个执行某项任务的程序并退出。 该过程必须复制到大约40个数据库,这将运行此过程。 我担心的是,如果全面改变,每个程序都必须改变。

如何创建一个需要输入的shell脚本 用户名,密码和SID并运行匿名块(相同的过程转换为匿名块并放在服务器上) 它运行它。

1 个答案:

答案 0 :(得分:1)

以下是我有时使用的代码:

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伪文件块(或所谓的着名Here-document)之后的行的最开始处有最后一个_EOF事件

希望这有帮助。