2011-08-02 117 views
10

我有一個生成包含幾個SQL UPDATE語句的文本文件的腳本:PL/SQL開發人員:多種語句?

UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1'; 
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2'; 
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3'; 
etc. 

當我的文字上面塊粘貼到PL/SQL Developer中的SQL窗口,它告訴我,分號是無效字符。當我刪除它時,它告訴我,我的第一個聲明沒有正確終止。

如何在單次執行中運行這些語句?

回答

7

我想你正在使用測試窗口。這隻能執行一條語句。 SQL窗口和命令窗口能夠運行多個語句。

如果您需要在測試窗口中運行它,可以將它嵌入到begin..end塊中以使其成爲PL/SQL語句塊。

+0

命令窗口可以正常工作,因爲它只會接受一大堆SQL,就像我每行輸入一樣。我在SQL窗口中,這就是我在上面描述的錯誤。是否有不同的方式我應該終止我的SQL窗口中的語句? –

+0

否。分號無問題,語法也很好。這個SQL應該運行良好。其實,它確實如此。當我執行它時,它解析得很好,並按預期告訴我'表或視圖未找到'。現在看來,這不是你的實際SQL(或者你有沒有Field1和Field2的TableX?)。 – GolezTrol

+0

以上代碼在SQL窗口中逐字(沒有等)出現這種錯誤:「ORA-00911:invalid character」,然後將光標放在第一個分號上。它適用於Command,但不適用於SQL。我可以有更新/舊版本的PL/SQL嗎? –

2

試試這種方式;

UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1' 
/
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2' 
/
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3' 
/
+0

不錯,但現在結束了不同的標籤 –

1

嗨,

你可以試試這個。

Declare 
Begin 
UPDATE TableX SET Field1 = 'New value 1' WHERE Field2='1'; 
UPDATE TableX SET Field1 = 'New value 2' WHERE Field2='2'; 
UPDATE TableX SET Field1 = 'New value 3' WHERE Field2='3'; 
End; 

在sql developer中執行多個查詢需要創建匿名塊。

希望這可以讓您的工作變得輕鬆。

+0

這不適合我 –

3

我也遇到了這個錯誤。你需要去工具 - >首選項。在窗口類型中,轉到SQL窗口並選擇「自動選擇語句」。這應該消除錯誤。