Oracleスクリプトからmount_pointの詳細を渡そうとします。
次のコードを使用して整数変数を渡すことはできますが、oracleスクリプトからマウントポイントの詳細を送信することはできません。
sed "s/@@pqr@@/$space/g" tablespace_extend.sql |
sqlplus -s "/ as sysdba"
BEGIN
space:="@@pqr@@";
dbms_output.put_line(space);
END;
/
同じコードを使用してマウントポイントの詳細を渡しても機能しません。次のエラーメッセージが返されます。
sed: -e expression #1, char 13: unknown option to `s', mount_point = /u08/dbname/
答え1
/
変数にsedコマンドを中断する区切り文字として使用される特殊文字が含まれていると仮定するため、次のことを試してください。
$ space="/u08/dbname/"
$ sed "s:@@pqr@@:$space:g" tablespace_extend.sql
BEGIN
space:="/u08/dbname/";
dbms_output.put_line(space);
END;
私はsed区切り文字を:
文字に変換しました。
詳細については、ここをクリックしてください。https://stackoverflow.com/questions/16790793/how-to-insert-strings-含む-slashes-with-sed