1

ABC、XYZの2つの機能があります。ABC は table1 のいくつかの行を user1 として削除し、XYZ は一部のユーザーを DB User として削除します。最初に ABC に電話し、次に XYZ に電話します。ABC 関数が実行されていますが、XYZ で失敗しています - 「XYZ: コマンドが見つかりません」

function ABC
{
        sqlplus -s $ur1/$pwd@$SID << EOF

        delete from table1 where row_name = 'A1';
        delete from table2 where row_name = 'A2';
        exit

        EOF
}

function XYZ
{
 sqlplus eip_dba/eip_dba$result@${input} << eof
 set timing off
 set serveroutput on size 10000
 set feedback off
 spool xyz_$input.out

 drop user usr1 cascade;
 drop user usr2 cascade;
 drop user usr3 cascade;
 commit;
 exit
 eof
}

ABC
XYZ

bash-3.2$ ./db_test.sh 

2 rows deleted.


2 rows deleted.

./db_test.sh: line 100: XYZ: command not found

何が問題だったのか教えてください。

前もって感謝します。

4

2 に答える 2

4

EOF の前の空白を削除してみてください

function ABC
{
        sqlplus -s $ur1/$pwd@$SID << EOF

        delete from table1 where row_name = 'A1';
        delete from table2 where row_name = 'A2';
        exit

EOF
}

サンプルプログラムでこれを試したところ、問題は解決しました。

于 2013-02-23T04:22:02.690 に答える