w Oracle możesz przeanalizować zapytanie przed jego wykonaniem
declare
l_theCursor integer default dbms_sql.open_cursor;
begin
dbms_sql.parse( l_theCursor, 'SELECT 1 FROM DUAL', dbms_sql.native );
end;
co i tak jest dobrą praktyką, ponieważ będziesz otrzymywać kod SQL z danych wejściowych użytkownika. jeśli oświadczenie nie jest prawidłowe, otrzymasz odpowiedni komunikat o błędzie. Oczywiście oświadczenie nie jest wykonywane przez powyższe.
Po przeanalizowaniu instrukcji możesz zapytać v$sql, aby znaleźć command_type:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';
Różne typy_komend są takie:
2 -- WSTAW
3 -- WYBIERZ
6 -- AKTUALIZACJA
7 — USUŃ
189 — Scal
możesz uzyskać pełną listę, select * from audit_actions order by action
Mam nadzieję, że to pomoże :)