Saya tidak tahu apa sebenarnya yang ingin Anda capai, tetapi mungkin Anda dapat mencoba menggunakan paket DBMS_SQL
dan itu adalah metode PARSE
. Ini hanya berfungsi dengan DML pernyataan saja. Inilah yang dilakukan Oracle SQL Developer.
parser ini dapat digunakan untuk pernyataan DML juga. Untuk PL/SQL akan membutuhkan beberapa penyesuaian. Sejauh yang saya tahu tidak ada yang menghabiskan cukup waktu untuk membuat parser yang benar-benar memvalidasi untuk DDL Oracle.
Di sini adalah contoh bagaimana saya menggunakannya:
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;
Cukup jalankan blok ini. Lewati satu parameter input tipe VARCHAR2(String) (maks 32KB) dan satu parameter output NUMBER.