sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo determinar el tipo de consulta sql para jdbcTemplate en JAVA?

en Oracle puede analizar una consulta antes de ejecutarla

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

lo cual es una buena práctica de todos modos, ya que recibirá su SQL de la entrada del usuario. si la declaración no es válida, recibirá el mensaje de error correspondiente. Por supuesto, la declaración no es ejecutada por lo anterior.

Después de analizar la declaración, puede consultar v$sql para averiguar el tipo_comando:

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

Los diversos commands_types son así:

2 -- INSERTAR

3 -- SELECCIONAR

6 -- ACTUALIZAR

7 -- ELIMINAR

189 -- FUSIONAR

puede obtener la lista completa mediante select * from audit_actions order by action

Espero que ayude :)