2011-06-02 129 views
2

我有一個創建表查詢,更新查詢,然後刪除表查詢。我需要一次運行這三個查詢。做這個的最好方式是什麼?如何運行多個SQL查詢?

Example 
1st Query: Create table A. 
2nd Query: Update value in table A 
3rd Query: Drop table A. 

不是一個接一個地運行這三個查詢,我想用PLSQL或其他方式運行它們。請幫忙。

+0

將查詢寫入文件(腳本),然後運行腳本:http://www.techonthenet.com/oracle/questions/script.php – 2011-06-02 09:28:16

+1

我在TOAD IDE中完成了它。我們可以通過按F5一次運行多個查詢我認爲(完成很長時間後) – Max 2011-06-02 09:28:49

+0

另請參閱:http://download.oracle.com/docs/cd/B10501_01/server.920/a90842/ch6.htm – 2011-06-02 09:30:17

回答

2

只需將三個查詢一個接一個地放在一個.sql文件中,在每個語句後用分號分開,然後將其作爲腳本執行(在SQL * Plus提示符下使用@scriptname.sql或TOAD/SQL Developer [或等效]使用其腳本執行功能)。

3

爲什麼不創建一個PROCEDURE

例如

CREATE OR REPLACE PROCEDURE foo 
IS 
BEGIN 
    -- The create sentence goes here. For example: 
    -- EXECUTE IMMEDIATE 
    -- 'CREATE TABLE bar (...)'; 

    -- The update sentence goes here 
    -- EXECUTE IMMEDIATE 
    -- 'UPDATE bar SET ...'; 

    -- The drop/delete sentence goes here. 
    -- EXECUTE IMMEDIATE 
    -- 'DROP TABLE bar;' 
END; 

你可以測試一下:

SET serveroutput ON; 
exec foo; 

PROCEDURE被存儲在數據庫中,所以你以後可以使用它。

希望這會有所幫助。

+1

不要忘記在這裏執行DDL語句立即執行 – 2011-06-02 09:51:58

+0

感謝您指出。我今天學了些新東西! :) – whirlwin 2011-06-02 10:12:09

3

把3個以下查詢彼此由分號分隔:

SELECT * 
FROM table_to_be_selected; 
DROP TABLE the table_to_be_dropped; 
TRUNCATE TABLE table_to_be_truncated; 

可以在串並置這些查詢,並執行該字符串。

另一種方法是solution