Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment déterminer le type de requête sql pour jdbcTemplate en JAVA ?

dans Oracle, vous pouvez analyser une requête avant de l'exécuter

declare
    l_theCursor     integer default dbms_sql.open_cursor;
begin
    dbms_sql.parse(  l_theCursor,  'SELECT 1 FROM DUAL', dbms_sql.native );
end;

ce qui est de toute façon une bonne pratique puisque vous recevrez votre SQL à partir de l'entrée de l'utilisateur. si l'instruction n'est pas valide, vous obtiendrez le message d'erreur approprié. Bien sûr, l'instruction n'est pas exécutée par ce qui précède.

Après avoir analysé l'instruction, vous pouvez interroger v$sql pour connaître le command_type :

select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';

Les différents types_commandes sont comme suit :

2 -- INSÉRER

3 -- CHOISIR

6 -- MISE À JOUR

7 -- SUPPRIMER

189 -- FUSIONNER

vous pouvez obtenir la liste complète en select * from audit_actions order by action

J'espère que ça aide :)