trong Oracle, bạn có thể phân tích cú pháp một truy vấn trước khi thực thi nó
declare
l_theCursor integer default dbms_sql.open_cursor;
begin
dbms_sql.parse( l_theCursor, 'SELECT 1 FROM DUAL', dbms_sql.native );
end;
đó là một thực tiễn tốt vì bạn sẽ nhận được SQL của mình từ đầu vào của người dùng. nếu câu lệnh không hợp lệ, bạn sẽ nhận được thông báo lỗi thích hợp. Tất nhiên, câu lệnh không được thực thi bởi phần trên.
Sau khi phân tích cú pháp câu lệnh, bạn có thể truy vấn v $ sql để tìm ra command_type:
select command_type, sql_text
from v$sql t
where sql_text = 'SELECT 1 FROM DUAL';
Các loại command_types khác nhau giống như vậy:
2 - CHÈN
3 - CHỌN
6 - CẬP NHẬT
7 - XÓA
189 - MERGE
bạn có thể nhận được danh sách đầy đủ bằng cách select * from audit_actions order by action
Hy vọng điều đó sẽ giúp :)