如何运行多个SQL查询?

Vik*_*ngh 3 sql plsql

我有一个创建表查询,一个更新查询,然后删除表查询。我需要一次运行这三个查询。做这个的最好方式是什么?

Example
1st Query: Create table A.
2nd Query: Update value in table A
3rd Query: Drop table A.
Run Code Online (Sandbox Code Playgroud)

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

whi*_*win 7

为什么不创建一个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;
Run Code Online (Sandbox Code Playgroud)

您可以使用以下方法进行测试:

SET serveroutput ON;
exec foo;
Run Code Online (Sandbox Code Playgroud)

PROCEDURE存储在数据库中,以便您稍后可以使用它。

希望这可以帮助。

  • 不要忘记这里的 DDL 语句立即执行 (2认同)

DaM*_*oss 6

将3个查询依次用分号隔开:

SELECT * 
FROM table_to_be_selected; 
DROP TABLE the table_to_be_dropped; 
TRUNCATE TABLE table_to_be_truncated;
Run Code Online (Sandbox Code Playgroud)

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

另一种方法是这种解决方案

  • @frafilewindows 给出的链接不正确 (2认同)

Dat*_*jam 5

只需将三个查询一个接一个地放入 .sql 文件中,每个语句后面加分号,然后将其作为脚本执行(在 SQL*Plus 提示符下使用或@scriptname.sql在 TOAD/SQL Developer [或等效工具] 中使用其脚本执行函数)。