Как запустить несколько запросов SQL? - PullRequest
3 голосов
/ 02 июня 2011

У меня есть запрос на создание таблицы, запрос на обновление, а затем запрос на удаление таблицы. Мне нужно выполнить эти три запроса за один раз. Каков наилучший способ сделать это?

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

Вместо того, чтобы выполнять эти три запроса один за другим, я хочу запускать их на ходу либо с помощью PLSQL, либо другим способом. Пожалуйста, помогите.

Ответы [ 3 ]

5 голосов
/ 02 июня 2011

Поместите 3 запроса, следующих друг за другом, через точку с запятой:

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

Вы можете объединить эти запросы в строку и выполнить эту строку.

Другой способ это решение .

3 голосов
/ 02 июня 2011

Почему бы не создать 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 хранится в базе данных, поэтому вы можете использовать его позже.

Надеюсь, это поможет.

2 голосов
/ 02 июня 2011

Просто поместите три запроса один за другим в файл .sql, с точкой с запятой после каждого оператора, а затем выполните его как сценарий (либо в приглашении SQL * Plus, используя @scriptname.sql, либо в TOAD / SQL Developer [или эквивалентный) с использованием функции выполнения скрипта).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...