Ik heb geen idee wat je precies wilt bereiken, maar misschien kun je proberen om pakket DBMS_SQL
te gebruiken en zijn methode PARSE
. Dit werkt alleen met DML alleen verklaringen. Dit is wat Oracle SQL Developer doet.
Deze parser kan ook worden gebruikt voor DML-instructies. Voor PL/SQL zal het wat moeten worden aangepast. Voor zover ik weet heeft niemand genoeg tijd besteed aan het maken van een echte volledig validerende parser voor Oracle's DDL.
Hier is een voorbeeld van hoe ik het gebruik:
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;
Voer dit blok eenvoudig uit. Geef één invoerparameter van het type VARCHAR2(String) (max. 32KB) en één uitvoerparameter NUMBER door.