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

làm thế nào để chuyển một tên bảng làm tham số cho thủ tục được lưu trữ?

Bạn không thể tạo %ROWTYPE biến cho một bảng không xác định và bạn không thể tham chiếu tĩnh đến tên cột khi bạn không biết tên bảng tại thời điểm biên dịch.

Bạn có thể sử dụng gói dbms_sql để xử lý các câu lệnh SQL động hoàn toàn. Bạn sẽ cần chuẩn bị câu lệnh SQL, mô tả các cột để tìm ra số lượng cột và kiểu dữ liệu của chúng, liên kết các biến thích hợp, sau đó tìm nạp dữ liệu. Đây là cách viết mã rườm rà hơn nhiều so với ví dụ bạn đã đăng nhưng nó mang lại cho bạn sự linh hoạt cao độ.

Có một số ví dụ về việc sử dụng gói dbms_sql trong tài liệu mà tôi đã liên kết đến. Bạn cũng có thể muốn xem hàm dump_csv của Tom Kyte ghi kết quả của một truy vấn tùy ý vào tệp CSV bằng cách sử dụng UTL_FILE . Nếu bạn thực sự muốn ghi dữ liệu vào DBMS_OUTPUT , bạn có thể chỉ cần thay thế UTL_FILE cuộc gọi với DBMS_OUTPUT . Nhưng tôi khá chắc rằng bạn muốn làm điều gì đó hữu ích hơn là chỉ ghi dữ liệu vào DBMS_OUTPUT đệm để thủ tục của Tom có ​​thể gần hơn với những gì bạn đang thực sự cố gắng hoàn thành.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tìm nạp dữ liệu từ SQL Server sang SqlDataReader hoạt động như thế nào?

  2. Tác dụng của việc đặt cam kết sau DML trong thủ tục là gì?

  3. Tự động tăng dần cho Oracle

  4. Có thể tham chiếu đến tên cột thông qua các biến liên kết trong Oracle không?

  5. Oracle.DataAccess.Client Dependencies