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

sqlplus无法在windows上假脱机名称以点开头的文件

韩禄
2023-03-14

我正在使用一些windows脚本,这些脚本涉及使用sqlplus后台处理文件。我不断收到错误:

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

很奇怪,只有<代码>。测试失败。但这正是我所需要的。我在Linux中尝试了相同的命令,没有问题。我在windows上使用sqlplus 11.2.0.3.0。更奇怪的是,在我同事的机器上,它工作得非常好。(实际上,我公司的所有开发人员都使用这些脚本。)似乎我不幸遇到了程序员的噩梦:无法复制的bug。。。

不管怎样,我完全被困在这里了。有人发生过这种事吗?我可以采取哪些可能的方法?

共有1个答案

曾宏毅
2023-03-14

从Oracle文档中,错误原因描述:

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

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

我能够使用Oracle XE11.2.0.2SPOOL到我系统上的. test文件:

 类似资料:
  • 我试图用一个参数更改脚本,以将输出假脱机到特定路径。搜索堆栈溢出后,我发现: 这将创建正确的文件名“i:\Direct bank\incoming\ROSE\report\u zgod\u 2017-08-28.csv”(我尝试按字面意思而不是 我也尝试过 但无济于事。 我不能避免参数(它在脚本的其他地方使用,它不能真正从SYSDATE计算)并且我不能更改路径(它必须在“I:\Direct ban

  • 在SQLcl中,将spool设置为file会出现错误“SP2-0556:文件名无效”。文件名中没有空格,路径正确(文件夹C:\Temp确实存在)。已经尝试过; 在Win10、OracleXE11上使用SQLcl 17.2.0。从sqlplus假脱机工作正常。如何将SQLcl设置为假脱机文件?

  • 我有我有水槽代理如下 假脱机目录中的文件将自动重命名为 。已完成,文件应重命名为 。在水槽代理将该文件写入 HDFS 后完成,但在我的情况下,它将文件重命名为 .在代理运行之前已完成。它还将文件重命名为 .即使我只是手动将文件复制到假脱机目录,也已完成。 还有一个问题是删除策略即使在文件复制到HDFS后也不会删除文件。 代理将假脱机目录文件随机写入HDFS。 它还在HDFS创建了大量的tmp文件。

  • 问题内容: 我需要在Windows中浏览带有长文件名的文件夹。 我尝试使用,但是它使用长路径名崩溃,这很糟糕。 我尝试使用,但是它忽略的路径名长于〜256,这更糟。 我尝试了此处描述的魔术字变通方法,但它仅适用于映射驱动器,不适用于UNC路径名。 这是一个具有短路径名的示例,该示例表明UNC路径名不适用于魔术词技巧。 关于如何处理长路径名或Unicode UNC路径名的任何想法吗? 编辑: 按照以

  • 我正在尝试使用水槽假脱机目录摄取到 HDFS(SpoolDir 我正在使用Cloudera Hadoop 5.4.2。(Hadoop 2.6.0,Flume 1.5.0)。 它适用于较小的文件,但适用于较大的文件时失败。请在下面找到我的测试场景: < li >千字节到50-60兆字节的文件,处理时没有问题。 < li >大于50-60MB的文件,它将大约50MB写入HDFS,然后我发现flume代

  • 问题内容: 好的,所以我对oracle完全满意。现在,这已经不复存在了; 我认为您可以了解我在下面尝试做的事情。对于找到的每个存储过程,将DDL输出到具有其名称的文件名。 问题是我不知道如何获取假脱机目标来拾取由游标设置的FileName的值。 关于我要去哪里错的任何想法吗?如果有人举这个例子,我将不胜感激。 我觉得我必须在周围跳舞,因为如果我最初创建一列, 我得到一个结果,我似乎无法动态地更改&