![将linux变量传递到oracle脚本中](https://linux22.com/image/182466/%E5%B0%86linux%E5%8F%98%E9%87%8F%E4%BC%A0%E9%80%92%E5%88%B0oracle%E8%84%9A%E6%9C%AC%E4%B8%AD.png)
我正在尝试在我的 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-containing-slashes-with-sed