sql >> Databasteknik >  >> RDS >> Oracle

Hur bestämmer man typen av sql-frågan för jdbcTemplate i JAVA?

i Oracle kan du analysera en fråga innan du kör den

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

vilket är en bra praxis i alla fall eftersom du kommer att få din SQL från användarinmatning. om påståendet inte är giltigt får du rätt felmeddelande. Naturligtvis exekveras inte uttalandet av ovanstående.

Efter att ha analyserat satsen kan du fråga v$sql för att ta reda på command_type:

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

De olika kommandotyperna är så här:

2 -- INFOGA

3 -- VÄLJ

6 -- UPPDATERING

7 -- DELETE

189 -- SAMMANFATTNING

du kan få hela listan genom att select * from audit_actions order by action

Hoppas det hjälper :)



  1. Skanningar av allokeringsorder

  2. Hitta närmaste plats med postnummer?

  3. Angiven cast är inte giltig när DataTable fylls i från OracleDataAdapter.Fill()

  4. Oracle NLS_DATE_FORMAT fungerar inte korrekt