В настоящее время я занимаюсь серьезным программированием PL/SQL. Формат для создания процедурPL/SQL CREATE ИЛИ REPLACE PROCEDURE Использование инструкции CREATE TABLE
[CREATE [OR REPLACE]]
PROCEDURE procedure_name[(parameter[, parameter]...)]
[AUTHID {DEFINER | CURRENT_USER}] {IS | AS}
[PRAGMA AUTONOMOUS_TRANSACTION;]
[local declarations]
BEGIN
executable statements
[EXCEPTION
exception handlers]
END [name];
и я помещаю executable statements
под BEGIN
. Почему мне не разрешено размещать оператор CREATE TABLE
в качестве исполняемого заявления в рамках процедуры?
Вы предлагаете мне не хранить хранимую процедуру? Если бы мне захотелось даже этого, я мог бы сделать это и быть верным да? – Mushy
Я предлагаю, если вы когда-нибудь почувствуете необходимость выполнять DDL-инструкции из хранимой процедуры, вы должны задать вопрос, действительно ли это необходимо. Для этого существуют допустимые варианты использования, но, по моему опыту, они довольно редки. Хранимые процедуры сами по себе хороши - пакеты ИМХО еще лучше. –
Вы хотите представить простой, но элегантный пример пакета? Я использую книгу программирования PL/SQL для чтения в Пакетах, но хотел бы видеть хороший пример. – Mushy