加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-12 13:09:05 所属栏目:百科 来源:网络整理
导读:我在 Linux上运行Oracle 11g,我正在尝试运行一个脚本来创建我的数据库.这个脚本在windows上运行正常,但是当我在Linux上测试它时,我收到以下错误: SP2-0556: Invalid File Name 问题可能是文件名的路径中有空格.我将把问题简化为我在文件中运行的众多命令之
我在 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读