【问题标题】:sqlplus cannot spool a file whose name starts with a dot on windowssqlplus 无法假脱机名称以 Windows 上的点开头的文件
【发布时间】:2016-05-26 14:07:30
【问题描述】:

我正在使用一些涉及使用 sqlplus 假脱机文件的 Windows 脚本。我不断收到错误:

SP2-0606: Cannot create SPOOL file "Z:/regression/RBC/.flashback"

我能够将问题限制在相当小的范围内:我无法假脱机某些名称以 Windows 中的点开头的文件。在windows cmd中,我用

输入了sqlplus
sqlplus /nolog

然后尝试了以下命令:

SQL> spool Z:/regression/test
SQL> spool Z:/regression/test.txt
SQL> spool Z:/regression/.test
SP2-0606: Cannot create SPOOL file "Z:/regression/.test"
SQL> spool Z:/regression/.test.
SQL> spool Z:/regression/.test.txt

很奇怪,只有.test 失败了。但这正是我需要的。我在Linux中尝试了相同的命令,没有问题。我在 Windows 上使用 sqlplus 11.2.0.3.0。更奇怪的是,在我同事的机器上它工作得很好。 (实际上我公司的所有开发人员都在使用这些脚本。)似乎我不幸遇到了编码人员的噩梦:无法重现的错误......

无论如何,我完全被困在这里。这曾经发生在任何人身上吗?我可以采取哪些可能的方法?

【问题讨论】:

  • 您不能将 linux 与 windows 进行比较。它们是完全不同的操作系统,文件名在 linux 中工作的事实与 Windows 完全无关。 Windows 是相当精神分裂的。资源管理器不允许您创建 .name 文件,但您可以从命令提示符轻松创建。你可能会不知何故被它钉住。
  • @MarcB 感谢您的评论。是的,我知道这一点。通过“不可复制”,我不仅意味着在 Linux 上工作的东西在 Windows 上失败了,而且在其他人的 Windows 机器上工作的东西在我的机器上也失败了......我相信它需要做一些配置,我只是不知道从哪里开始.
  • 可能是权限问题。其他 .test 文件成功地跟随 spool,对吗?
  • @tale852150 是的,它失败的唯一情况是我要假脱机的文件名是一个点加上一些字符。这怎么可能与权限问题有关?感谢您的任何建议!

标签: windows filenames sqlplus spool


【解决方案1】:

来自 Oracle 文档,错误原因的描述:

原因: STORE 命令无法创建指定文件。可能是磁盘空间不足、打开的文件过多或输出目录有只读保护。

根据您在问题中显示的内容,最后一个选项不是问题。 检查其他两种情况——磁盘空间不足和打开的文件太多。

我能够使用 Oracle XE 11.2.0.2 在我的系统上 SPOOL 到 .test 文件:

【讨论】:

    猜你喜欢
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-03
    相关资源
    最近更新 更多