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 :)