в Oracle можете да анализирате заявка, преди да я изпълните
declare
l_theCursor integer default dbms_sql.open_cursor;
begin
dbms_sql.parse( l_theCursor, 'SELECT 1 FROM DUAL', dbms_sql.native );
end;
което така или иначе е добра практика, тъй като ще получавате вашия SQL от потребителски вход. ако изявлението не е валидно, ще получите съответното съобщение за грешка. Разбира се, операторът не се изпълнява от горното.
След анализиране на оператора можете да направите заявка към v$sql, за да откриете command_type:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';
Различните commands_types са така:
2 -- ВМЪКНЕТЕ
3 -- ИЗБЕРЕТЕ
6 -- АКТУАЛИЗАЦИЯ
7 -- ИЗТРИВАНЕ
189 -- СЛИВАНЕ
можете да получите пълния списък чрез select * from audit_actions order by action
Надявам се това да помогне :)