Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Làm cách nào để xác định loại truy vấn sql cho jdbcTemplate trong JAVA?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hiển thị các giá trị LISTAGG trong một ô dựa trên giá trị của một cột khác

  2. Cơ sở dữ liệu Oracle:Làm thế nào để đọc một BLOB?

  3. ORACLE:KHÔNG CÓ CƠ SỞ DỮ LIỆU - nhưng dữ liệu tồn tại

  4. Làm thế nào để chỉ liệt kê các bảng tôi đã tạo trong Oracle SQL?

  5. Chèn vào bảng chọn từ bảng a và bảng b trong đó