"Unknown set option" 在 SQL 开发人员中创建假脱机脚本

"Unknown set option" in SQL developer which creating Spool script

我的代码如下-

set define on;
set spool on;
set SQLFORMAT csv;
set fpath = &folderpath;
spool @fpath/mycsvfile1.csv
select * from I_PTY;
spool off;
spool @fpath/mycsvfile2.csv
select * from I_LEG;
spool off;

我想将 folderpath 值作为 'C:\Documents\Spool' 传递。 并用这个值传递给变量fpath,使得第5行传递的值等于'C:\Documents\Spool\mycsvfile1.csv'

但是,我得到的错误是:Unknown set option "fpath".

我哪里错了?请协助。

"set" 应该是 "define"

您可以通过两种方式做到这一点:

直接在假脱机命令中使用&&folderpath即可,例如:

set spool on;
set sqlformat csv;

spool &&folderpath/mycsvfile1.csv
select * from i_pty;
spool off;

spool &&folderpath/mycsvfile2.csv
select * from i_leg;
spool off;

或者使用 DEFINE 来赋值(然后你必须以与之前答案相同的方式引用它,所以你什么也得不到,真的......):

set spool on;
set sqlformat csv;
define fpath = &folderpath

spool &&fpath/mycsvfile1.csv
select * from i_pty;
spool off;

spool &&fpath/mycsvfile2.csv
select * from i_leg;
spool off;

每次引用相同的替代变量时,使用双符号可阻止 Oracle 提示您输入值。如果您希望再次提示您的下一个脚本或此脚本的下一个 运行 输入文件夹路径的值,那么您将需要在末尾包含 undefine folderpath(可能还有 undefine fpath)剧本。

此外,您可能希望在脚本顶部包含 set verify off

N.B。您在假脱机文件名中使用了 @ - 那里没有位置。它仅在您 运行 编写脚本时使用。

尝试:

spool &folderpath./mycsvfile2.csv

我的代码示例:

spool c:\temp\SQL_Details_Report_&FILE_NAME..html