Oracle
 sql >> Database >  >> RDS >> Oracle

Utilizzo del parser di database Oracle da Java utilizzando JDBC

Non ho idea di cosa vuoi ottenere esattamente, ma forse potresti provare a usare il pacchetto DBMS_SQL ed è il metodo PARSE . Funziona solo con DML solo dichiarazioni. Questo è ciò che fa Oracle SQL Developer.

Questo parser potrebbe essere utilizzato anche per le istruzioni DML. Per PL/SQL avrà bisogno di alcune modifiche. Per quanto ne so nessuno ha impiegato abbastanza tempo per creare un vero parser completamente validante per il DDL di Oracle.

Qui è un esempio di come lo uso:

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;

Esegui semplicemente questo blocco. Passa un parametro di input di tipo VARCHAR2(String) (max 32KB) e un parametro di output NUMBER.