2011-02-08 59 views
0

我有一個包含一些代碼的sql文件(abc.sql)。我能爲@命令在SQL PLUS(OS HP-unix)中不起作用

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

     1 

SQL> 

但不能使用「@」命令執行運行此使用「運行」命令。如果我使用@執行,它只是返回到SQL提示符而不執行此文件。

SQL> @abc.sql 
SQL> 
SQL> 

您能幫我解決這個問題嗎?

僅供參考,我M於HP-UNIX(Tru64 UNIX的V5.1B(2650修訂版)使用的是Oracle 8.1.7.4.0

回答

1
您的文件中

確實有

select 1 from dual 
/

你需要告訴SQL引擎後在「編輯」的@類型執行線(/)

編輯

,看看緩衝區說:

SQL> @a.sql 

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

SQL> ed 
Wrote file afiedt.buf 

... 

select 1 from dual 
/
+0

最後有「/」,但仍然不起作用。 – 2011-02-08 13:30:41

+0

@Chandra Bhushan更新上面,當你在@abc.sql – Harrison 2011-02-08 13:45:03

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塊。


你可能misstaking runstart命令。