Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como determinar o tipo da consulta sql para jdbcTemplate em JAVA?


no Oracle você pode analisar uma consulta antes de executá-la
declare
    l_theCursor     integer default dbms_sql.open_cursor;
begin
    dbms_sql.parse(  l_theCursor,  'SELECT 1 FROM DUAL', dbms_sql.native );
end;

o que é uma boa prática de qualquer maneira, pois você receberá seu SQL da entrada do usuário. se a declaração não for válida, você receberá a mensagem de erro apropriada. Claro que a instrução não é executada pelo acima.

Depois de analisar a instrução, você pode consultar v$sql para descobrir o command_type:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';

Os vários command_types são assim:

2 -- INSERIR

3 -- SELECIONE

6 -- ATUALIZAÇÃO

7 -- EXCLUIR

189 -- FUSÃO

você pode obter a lista completa select * from audit_actions order by action

Espero que ajude :)