我有一个包含一些代码的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)
答案 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
进行错误处理。