在 sqlplus 假脱机文件中使用美元符号

Using dollar sign in sqlplus spool file

如何在 unix 中使用带有美元符号(即“$”)的文件名,如下所示

SQL> spool DIR$work.sql
SP2-0332: Cannot create spool file.

我试过如下

SQL> spool DIR$work.sql
SP2-0332: Cannot create spool file.
SQL> spool 'DIR$work.sql'
SP2-0332: Cannot create spool file.
SQL> spool 'DIR$work.sql'
SP2-0332: Cannot create spool file.

我无法以任何方式在 oracle 中成功创建此类文件。 我有oracle 11g版本。

在 windows sqlplus 中它工作正常。

您可以使用 set escchar 设置来停止 Oracle 解释美元符号:

SQL> show escchar
escchar OFF
SQL> spool /tmp/$work.sql
SP2-0332: Cannot create spool file.
SQL> set escchar $
SQL> spool /tmp/$work.sql
SQL>

您正在假脱机到该文件名。

SQL> select * from dual;

D
-
X

1 row selected.

SQL> spool off
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
...

$ cat /tmp/$work.sql
SQL> select * from dual;

D
-
X

1 row selected.

SQL> spool off

有关详细信息,另请参阅 My Oracle Support 文档 761384.1。