2012-02-07 297 views
21

我有一些從Excel表生成的一些800-1200 INSERT語句。我想在TOAD中運行這些 - Oracle數據庫。Toad for Oracle ..如何執行多個語句?

如果我按F9 ,它只能運行一個線和F5給我的語法問題,似乎沒有工作?我在這裏錯過了什麼?

+1

什麼是錯誤?你能否添加一個失敗語句的小例子? – 2012-02-07 03:57:33

+0

F5掛起並且什麼都不做,我需要在幾分鐘後取消操作。 F9在一行中用多個語句分隔「;」在第一個「;」之後給出一個錯誤,說明有一個無效字符。 – user1191463 2012-02-07 04:04:43

+1

自從我使用了TOAD以來已經有一段時間了,但是如果我沒有記錯,有幾種情況下它的解析器無法正常工作。例如,可選的引用機制,例如'q'!...!'',並在分號後註釋。不知道爲什麼F5會掛起,除非它打開另一個會話,並且正在等待當前會話提交/回滾?無論哪種方式,如果您可以發佈一個小測試用例,這將有所幫助。 – 2012-02-07 04:24:21

回答

27

F9只執行一條語句。默認情況下,Toad會嘗試在你的光標所在的位置執行語句,或者將所有突出顯示的文本視爲語句並嘗試執行該語句。在這種情況下,不需要A ;

F5是「執行的腳本」,這意味着蟾蜍會採取兩種完全凸顯含有一個以上的語句文本(或一切都在你的編輯器,如果沒有被高亮顯示),並執行它喜歡它是SQL腳本*加。因此,在這種情況下,每個聲明後必須跟一個;,有時(在PL/SQL情況下)以/結尾。

+0

知道爲什麼F5以純文本形式提供輸出,而F9以電子表格的形式輸出輸出,或者爲describe語句形式提供新的TOAD窗口? – 2013-06-20 22:04:12

+0

@PeterBecich:這是因爲F5正在外部程序中執行; TOAD不解釋純文本的結果。另一方面,F9直接由TOAD執行,因此它可以將結果格式化爲一個很好的網格佈局。 – 2014-08-19 03:11:03

4

突出顯示想要運行並以腳本運行的所有內容。您可以通過點擊菜單欄上的圖標來完成此操作,該圖標看上去像一個帶有閃電的文本文件。這與打F5相同。所以如果F5不起作用,你的腳本可能會有錯誤。

你在每個陳述後都有分號嗎?

2

我更喜歡通過SQL * Plus選項執行。它位於「作爲腳本執行」工具欄按鈕下的小下箭頭菜單中。

1

打開Toad的多個實例並執行。

1

你可以去f5它會執行選項卡上的所有腳本。

或者

您可以創建一個SQL文件,並把所有的INSERT語句中它比給在SQL Plus中的文件路徑和執行。

4

將多個語句包裝在BEGIN END塊中以使它們成爲一個語句並在END之後添加一個斜槓;條款。

BEGIN 
    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Bite in the Apple', 'Chrisann Brennan'); 

    insert into books 
    (id, title, author) 
    values 
    (books_seq.nextval, 'The Restaurant at the End of the Universe', 'Douglas Adams'); 
END; 
/

這樣,它只是ctrl - 一個然後按Ctrl - 輸入,它會。

1
  1. 只是finsih所有的查詢;
  2. 選擇您需要的所有查詢(插入,選擇...)。
  3. 推或F5或F9兩個作品。

沒必要執行腳本作爲

1
begin 

insert into fiscal_year values(2001,'01-jan-2001','31-dec-2001'); 
insert into fiscal_year values(2002,'01-jan-2002','31-dec-2002'); 
insert into fiscal_year values(2003,'01-jan-2003','31-dec-2003'); 
insert into fiscal_year values(2004,'01-jan-2004','31-dec-2004'); 

end; 

這樣使用,然後提交。