@ command在SQL PLUS(OS HP-unix)中不起作用

时间:2011-02-08 13:23:40

标签: sql oracle

我有一个包含一些代码的sql文件(abc.sql)。我能够使用“run”命令将其作为

运行
SQL> run abc.sql
  1* select 1 from dual

         1

SQL>

但无法使用“@”命令执行。如果我使用@执行它只返回SQL提示符而不执行此文件。

SQL>  @abc.sql
SQL>
SQL>

你能帮我解决一下这个问题吗?

仅供参考,我在HP-unix上使用Oracle 8.1.7.4.0(Tru64 UNIX V5.1B(Rev。2650)

2 个答案:

答案 0 :(得分:1)

你文件中的

确实有

select 1 from dual
/

你需要告诉sql引擎执行行(/)

修改

在“EDIT”中输入@并查看缓冲区的内容:

SQL> @a.sql

         1
----------
         1

SQL> ed
Wrote file afiedt.buf

...

select 1 from dual
/

答案 1 :(得分:1)

run不会执行文件内容。相反,它运行缓冲区的内容。

纪录片( http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve037.htm#sthref1803)说

<强> - [R [UN]

列出并执行当前存储在SQL缓冲区中的SQL命令或PL / SQL块。

缓冲区没有命令历史记录列表,也不记录SQL * Plus命令。

用法

RUN导致SQL缓冲区的最后一行成为当前行。

斜杠命令(/)的功能与RUN类似,但不会在屏幕上的SQL缓冲区中列出命令。 SQL缓冲区始终包含最后输入的SQL语句或PL / SQL块。


您可能会对run命令start进行错误处理。