我有一個創建表查詢,更新查詢,然後刪除表查詢。我需要一次運行這三個查詢。做這個的最好方式是什麼?如何運行多個SQL查詢?
Example
1st Query: Create table A.
2nd Query: Update value in table A
3rd Query: Drop table A.
不是一個接一個地運行這三個查詢,我想用PLSQL或其他方式運行它們。請幫忙。
我有一個創建表查詢,更新查詢,然後刪除表查詢。我需要一次運行這三個查詢。做這個的最好方式是什麼?如何運行多個SQL查詢?
Example
1st Query: Create table A.
2nd Query: Update value in table A
3rd Query: Drop table A.
不是一個接一個地運行這三個查詢,我想用PLSQL或其他方式運行它們。請幫忙。
只需將三個查詢一個接一個地放在一個.sql文件中,在每個語句後用分號分開,然後將其作爲腳本執行(在SQL * Plus提示符下使用@scriptname.sql
或TOAD/SQL Developer [或等效]使用其腳本執行功能)。
爲什麼不創建一個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
被存儲在數據庫中,所以你以後可以使用它。
希望這會有所幫助。
不要忘記在這裏執行DDL語句立即執行 – 2011-06-02 09:51:58
感謝您指出。我今天學了些新東西! :) – whirlwin 2011-06-02 10:12:09
把3個以下查詢彼此由分號分隔:
SELECT *
FROM table_to_be_selected;
DROP TABLE the table_to_be_dropped;
TRUNCATE TABLE table_to_be_truncated;
可以在串並置這些查詢,並執行該字符串。
另一種方法是solution。
將查詢寫入文件(腳本),然後運行腳本:http://www.techonthenet.com/oracle/questions/script.php – 2011-06-02 09:28:16
我在TOAD IDE中完成了它。我們可以通過按F5一次運行多個查詢我認爲(完成很長時間後) – Max 2011-06-02 09:28:49
另請參閱:http://download.oracle.com/docs/cd/B10501_01/server.920/a90842/ch6.htm – 2011-06-02 09:30:17