Utan DDL kan du skapa ett anonymt PL/SQL-block genom att omge satserna med BEGIN och END:
BEGIN
INSERT INTO foo (bar) VALUES('one');
INSERT INTO foo (bar) VALUES('two');
END;
För att utföra DDL (som CREATE TABLE) måste du använda dynamisk 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;
INLEGARNA är också dynamiska, eftersom tabellen inte existerar innan blocket körs och därför skulle den misslyckas med att kompilera.
OBS:Detta skulle vara ett ovanligt krav:applikationer ska normalt inte skapa tabeller!