如何运行多个SQL查询?

时间:2011-06-02 09:25:48

标签: sql plsql

我有一个create table查询,一个更新查询,然后是drop table查询。我需要一次运行这三个查询。这样做的最佳方式是什么?

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

我不是逐个运行这三个查询,而是想通过PLSQL或其他方式运行它们。请帮忙。

3 个答案:

答案 0 :(得分:4)

将3个查询彼此分开,用分号分隔:

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

您可以在字符串中连接这些查询并执行该字符串。

另一种方式是solution

答案 1 :(得分:3)

为什么不创建PROCEDURE

E.g。

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存储在数据库中,以便您以后可以使用它。

希望这有帮助。

答案 2 :(得分:2)

简单地将三个查询一个接一个地放在一个.sql文件中,每个语句后面都有分号,然后将它作为脚本执行(使用@scriptname.sql在SQL * Plus提示符下或在TOAD / SQL中执行Developer [或等同物]使用其脚本执行功能)。