v Oracle můžete analyzovat dotaz před jeho provedením
declare
l_theCursor integer default dbms_sql.open_cursor;
begin
dbms_sql.parse( l_theCursor, 'SELECT 1 FROM DUAL', dbms_sql.native );
end;
což je každopádně dobrá praxe, protože budete dostávat SQL z uživatelského vstupu. pokud příkaz není platný, zobrazí se příslušná chybová zpráva. Příkaz samozřejmě není proveden výše uvedeným.
Po analýze příkazu můžete dotazem v$sql zjistit command_type:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';
Různé commands_types jsou podobné:
2 -- VLOŽIT
3 -- VYBERTE
6 -- AKTUALIZACE
7 -- ODSTRANIT
189 -- SLUČIT
úplný seznam můžete získat select * from audit_actions order by action
Doufám, že to pomůže :)