oracle sqlplus在@命令路径中有空格的问题

前端之家收集整理的这篇文章主要介绍了oracle sqlplus在@命令路径中有空格的问题前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在 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"

如您所料,将文件内容打印到控制台.所以,我认为这是sqlplus(和linux)具体的.

我连接到我的一个Linux盒子,很容易重现这个问题.似乎没有任何方法可以找到从命令行使用’@’选项执行文件,所以我认为你留下了以下选项来解决

>将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
原文链接:https://www.f2er.com/oracle/205232.html

猜你在找的Oracle相关文章