我在
Linux上运行Oracle 11g,我正在尝试运行一个脚本来创建我的数据库.这个脚本在windows上运行正常,但是当我在Linux上测试它时,我收到以下错误:
SP2-0556: Invalid File Name
问题可能是文件名的路径中有空格.我将把问题简化为我在文件中运行的众多命令之一,以简化操作.我试图运行的示例命令如下所示:
sqlplus [uname]/[pw] @'../database/My Schema/create_sequence.sql'
create_sequence.sql文件有两个简单的创建序列命令,它们可以自行运行.我强烈怀疑这是由于空白,因为当我将目录名从My Schema更改为MySchema并相应地更改上面的sqlplus命令时,脚本运行正常.
就像我说的,这个脚本在带有空格的窗口中工作,但不适用于Linux.我怀疑空间可能不受支持,但我想知道是否有人知道任何不同或者它有解决方法吗?
旁注:运行如下命令:
more ../database/My\ Schema/create_sequence.sql
要么
more "../database/My Schema/create_sequence.sql"
我连接到我的一个Linux盒子,很容易重现这个问题.似乎没有任何方法可以找到从命令行使用’@’选项执行文件,所以我认为你留下了以下选项来解决:
原文链接:https://www.f2er.com/oracle/205232.html>将My Schema目录重命名为不再有空格(以及更新引用它的所有其他脚本)
>从它所在的目录中执行文件(我确认这是有效的,见下文)
>通过stdin将文件发送到sqlplus(见下文)
您还应该向Oracle提供报告,因为可能会提供一个简单的修复程序.
示例命令:
来自目录
cd ../database/My\ Schema sqlplus [uname]/[pw] @create_sequence.sql
通过stdin
sqlplus [uname]/[pw] < ../database/My\ Schema/create_sequence.sql