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

khối plsql để lấy kết quả truy vấn sql động

Cái này:

dbms_output.put_line(sql_str);

... là những gì đang in đầu ra, đó là hành vi chính xác. Phần DECLARE cho tôi ấn tượng rằng bạn đang cố gắng chạy một chức năng ẩn danh, đúng không?

Tôi chưa bao giờ sử dụng EXECUTE NGAY LẬP TỨC - chỉ những thứ sau:

FUNCTION MY_FUNCTION()
RETURN SYS_REFCURSOR

L_CURSOR SYS_REFCURSOR;
L_QUERY  VARCHAR2(5000) DEFAULT 'SELECT ...';

BEGIN

  OPEN L_CURSOR FOR L_QUERY;
  RETURN L_CURSOR;

END;

Nếu bạn muốn bao gồm các biến liên kết trong SQL động:

FUNCTION MY_FUNCTION()
RETURN SYS_REFCURSOR

L_CURSOR SYS_REFCURSOR;
L_QUERY  VARCHAR2(5000) DEFAULT 'SELECT ...';

BEGIN

  OPEN L_CURSOR FOR L_QUERY
   USING bind_var1;
  RETURN L_CURSOR;

END;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClassNotFoundException:oracle.jdbc.OracleDriver

  2. Hàm POWER () trong Oracle

  3. Chức năng OCI của Oracle OCIPasswordChange có mã hóa mật khẩu được truyền không

  4. Cách tạo quy trình lưu trữ PL / SQL với tham số trong cơ sở dữ liệu Oracle

  5. Xuất bảng kết xuất bằng cách sử dụng SQL DEVELOPER