@ 命令在 SQL PLUS(操作系统 HP-unix)中不起作用

发布于 2024-10-16 19:45:35 字数 356 浏览 3 评论 0原文

我有一个 sql 文件(abc.sql),其中包含一些代码。我可以使用“run”命令运行它,

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

         1

SQL>

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

SQL>  @abc.sql
SQL>
SQL>

您能帮我解决这个问题吗?

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

I have a sql file (abc.sql) which contains some code. I am able to run this using "run" command as

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

         1

SQL>

But not able to execute using "@" command. If i execute using @ it just return to the SQL prompt without executing this file.

SQL>  @abc.sql
SQL>
SQL>

Could you please help me in resolving this issue?

FYI, I m using Oracle 8.1.7.4.0 on HP-unix (Tru64 UNIX V5.1B (Rev. 2650)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痴骨ら 2024-10-23 19:45:35

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 命令。

run does not execute a file's content. Rather, it runs the content of the buffer.

The docu (
http://download.oracle.com/docs/cd/E11882_01/server.112/e16604/ch_twelve037.htm#sthref1803 ) says

R[UN]

Lists and executes the SQL command or PL/SQL block currently stored in the SQL buffer.

The buffer has no command history list and does not record SQL*Plus commands.

Usage

RUN causes the last line of the SQL buffer to become the current line.

The slash command (/) functions similarly to RUN, but does not list the command in the SQL buffer on your screen. The SQL buffer always contains the last SQL statement or PL/SQL block entered.


You are probably misstaking run for the start command.

无敌元气妹 2024-10-23 19:45:35

在您的文件中,您是否

select 1 from dual
/

执行行 (/)

Edit并查看缓冲区的内容:

需要告诉 sql 引擎在 @ 输入“EDIT”后

SQL> @a.sql

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

SQL> ed
Wrote file afiedt.buf

...

select 1 from dual
/

within your file do have

select 1 from dual
/

you need to tell the sql engine to execute the line (/)

Edit

after the @ type in "EDIT" and see what the buffer says:

SQL> @a.sql

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

SQL> ed
Wrote file afiedt.buf

...

select 1 from dual
/
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文