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

Hvordan bestemmes typen af ​​sql-forespørgslen til jdbcTemplate i JAVA?

i Oracle kan du parse en forespørgsel, før du udfører den

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

hvilket er en god praksis alligevel, da du vil modtage din SQL fra brugerinput. hvis sætningen ikke er gyldig, får du den relevante fejlmeddelelse. Udsagnet udføres naturligvis ikke af ovenstående.

Efter at have parset sætningen kan du forespørge v$sql for at finde ud af kommandotype:

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

De forskellige kommandotyper er sådan:

2 -- INDSÆT

3 -- VÆLG

6 -- OPDATERING

7 -- SLET

189 -- FLETNING

du kan få den fulde liste ved at select * from audit_actions order by action

Håber det hjælper :)



  1. Perl DBI indsæt flere rækker ved hjælp af mysql native multiple insert-evne

  2. Find alle tabeller, der indeholder kolonne med angivet navn - MS SQL Server

  3. Hvordan kan jeg se forskellene mellem 2 MySQL-dumps?

  4. Brug pg_dump resultat som input til pg_restore