Nie mam pojęcia, co dokładnie chcesz osiągnąć, ale może spróbujesz użyć pakietu DBMS_SQL
i jest to metoda PARSE
. Działa to tylko z DML tylko oświadczenia. To właśnie robi Oracle SQL Developer.
Ten parser może być również używany do instrukcji DML. W przypadku PL/SQL będzie to wymagało pewnych poprawek. O ile wiem, nikt nie spędził wystarczająco dużo czasu, aby stworzyć prawdziwy, w pełni weryfikujący parser dla DDL Oracle.
Tutaj to przykład, jak go używam:
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;
Po prostu wykonaj ten blok. Przekaż jeden parametr wejściowy typu VARCHAR2(String) (maks. 32KB) i jeden parametr wyjściowy NUMBER.