当前位置: 首页 > 知识库问答 >
问题:

使用SQL Plus将带空格的文件名传递给SPOOL命令会导致SP2-0768 Illegral SPOOL命令错误

於彬
2023-03-14

我的sql文件包含

`SPOOL &1;
//sql code to execute
SPOOL OFF;`

使用SQLPlus执行sql文件,并使用Process从C#代码调用SQLPlus。开始...代码剪切

`var m_StartInfo = new ProcessStartInfo();
m_StartInfo.FileName = "SQLPLUS.EXE";
m_StartInfo.CreateNoWindow = true;
m_StartInfo.UseShellExecute = false;
m_StartInfo.Arguments = String.Format("{0}\"{1}\" \"{2}\"", connectionString, sqlfile, sqlLogFileName);
m_Process = Process.Start(m_StartInfo);
Other code.....`

它工作正常,在sqlLogFileName位置可以很好地创建sqlplus日志。但是,如果sqlLogFileName之间有空格(例如“C:\My Application\log.txt”),则不会创建日志文件,而是在SQL Plus窗口上发出错误SP2-0768非法假脱机命令

有什么建议可以解决这个问题吗?我正在使用Oracle 11GR2

共有2个答案

罗建弼
2023-03-14

Oracle软件设计用于没有空格的目录(这是Linux/Unix中公认的标准,尽管从技术上讲您可以使用其他方法)。在Windows上,情况有所不同,但Oracle软件有相同的想法:它不喜欢空白。因此,修复方法很明确:spool到一个没有空格的目录。这是建议,任何人都可以接受或不接受。

慕光霁
2023-03-14

您只需要用双引号将文件名括起来。类似于:

spool“用空格测试.txt”

或者在您的情况下使用参数:

SPOOL "&1"

我认为最好不要使用空格,正如@tvCa解释的那样。

附带说明:

我相信,StarPilot所指的是将命令输出重定向到文件,这就是为什么当您尝试使用它时它不起作用。例如,在命令提示符中,您会写:

<代码>目录

这样就节省了dir的输出dir.txt.

 类似资料:
  • 问题内容: 如何接收文件作为命令行参数? 问题答案: 仅传递文件的路径,在程序内部使用Java File类处理它 这将第一个参数作为文件路径:

  • 问题内容: 我正在使用命令行实用程序,该实用程序需要传递文件名以将输出写入例如 它写入的唯一内容是一条消息,指示其已成功运行。我希望能够将写入到另一个命令行实用程序的所有内容通过管道传输。我的动机是output.txt最终将是一个40 GB的文件,不需要保留,我宁愿通过管道传输流,也不能以逐步的方式处理大量文件。 在这种情况下,有什么方法可以将实际输出(即)传递给另一个命令?我能以某种方式神奇地通

  • 问题内容: 我想编写Docker容器管理的脚本,但是我发现很难将PS变量传递给Docker命令,特别是由于路径格式的差异。 以下行(*)和您可以在此处找到的赞都可以 使用,但是很不方便: 的确,PS 非常适合MSI安装程序,您需要查看弹出窗口并控制其可见性级别,以便了解无提示安装程序正在运行。取而代之的是,您不想每次运行控制台应用程序时都启动一个新窗口,尤其是在Docker中,在其中您与调用程序和

  • 要启动Java程序,我可以传递如下参数: 在gradle命令行中有哪些好的方法可以做到这一点: 这是正在建造的。格雷德尔:

  • 如果你需要在命令行下插入一个值,通常需要使用引号将其括起来,尤其是当其包含空格时更是如此。 shellquote 函数可以携带任意数量的参数(包括数组), 它会使用引号将每个参数都括起来并返回一个可以传递到 Shell 命令行上的以空格间隔的字符串。 在下面的例子中,我们想要创建一个用于文件改名的 exec 资源, 然而源文件名和目标文件名都包含空格,因此在命令行上需要正确地使用引号将它们括起来。

  • 问题内容: 当提供一些参数时,我想使我的python脚本从命令行运行。但是,参数之一应该是特定于脚本一个片段的选项列表。字符串解析是在逗号分隔“命令行列表”字符串之后实际构造列表的唯一方法吗?如果是这样,您将如何处理? 示例:-details = [‘name’,’title’,’address’] 问题答案: 程序: 命令行: 输出: 此代码段将执行短或长命令切换(例如或),并在切换到Pytho