Je n'ai aucune idée de ce que vous voulez exactement réaliser, mais peut-être pourriez-vous essayer d'utiliser le package DBMS_SQL
et sa méthode PARSE
. Cela ne fonctionne qu'avec DML déclarations uniquement. C'est ce que fait Oracle SQL Developer.
Cet analyseur peut également être utilisé pour les instructions DML. Pour PL/SQL, il faudra quelques ajustements. Autant que je sache, personne n'a passé assez de temps pour créer un véritable analyseur entièrement validant pour le DDL d'Oracle.
Ici est un exemple de comment je l'utilise :
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;
Exécutez simplement ce bloc. Passez un paramètre d'entrée de type VARCHAR2(String) (max 32 Ko) et un paramètre de sortie NUMBER.