Nemám ponětí, čeho přesně chcete dosáhnout, ale možná byste mohli zkusit použít balíček DBMS_SQL
a je to metoda PARSE
. Toto funguje pouze s DML pouze prohlášení. To je to, co Oracle SQL Developer dělá.
Tento analyzátor lze také použít pro příkazy DML. Pro PL/SQL to bude potřebovat nějaké doladění. Pokud vím, nikdo nevěnoval dostatek času vytvoření skutečného plně validačního analyzátoru pro Oracle DDL.
Zde je příklad, jak jej používám:
declare
l_cursor number := dbms_sql.open_cursor;
l_offset number := -1 ;
begin
begin
dbms_sql.parse( l_cursor, :st, dbms_sql.native );
exception when others then
l_offset := dbms_sql.last_error_position;
end;
dbms_sql.close_cursor( l_cursor );
:off := l_offset;
end;
Jednoduše spusťte tento blok. Předejte jeden vstupní parametr typu VARCHAR2(String) (max. 32 kB) a jeden výstupní parametr NUMBER.