Bez DDL można utworzyć anonimowy blok PL/SQL, otaczając instrukcje BEGIN i END:
BEGIN
INSERT INTO foo (bar) VALUES('one');
INSERT INTO foo (bar) VALUES('two');
END;
Aby wykonać DDL (jak CREATE TABLE), musisz użyć dynamicznego PL/SQL:
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE foo (bar VARCHAR2(100))';
EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'one';
EXECUTE IMMEDIATE 'INSERT INTO foo (bar) VALUES(:v)' USING 'two';
END;
WSTAWKI są również dynamiczne, ponieważ tabela nie istnieje przed uruchomieniem bloku, więc nie można by jej skompilować.
UWAGA:Byłoby to nietypowe wymaganie:aplikacje nie powinny normalnie tworzyć tabel!