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

Come determinare il tipo di query sql per jdbcTemplate in JAVA?

in Oracle puoi analizzare una query prima di eseguirla

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

che è comunque una buona pratica poiché riceverai il tuo SQL dall'input dell'utente. se l'istruzione non è valida verrà visualizzato il messaggio di errore appropriato. Ovviamente l'istruzione non viene eseguita da quanto sopra.

Dopo aver analizzato l'istruzione puoi interrogare v$sql per scoprire il command_type:

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

I vari command_types sono così:

2 -- INSERTO

3 -- SELEZIONA

6 -- AGGIORNAMENTO

7 -- ELIMINA

189 -- UNISCI

puoi ottenere l'elenco completo da select * from audit_actions order by action

Spero di esserti stato d'aiuto :)