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

PL / SQL:viết lại câu lệnh SELECT sử dụng tham số IN trong thủ tục được lưu trữ

Bạn cần phải sử dụng cùng một cách tiếp cận SQL động đã được đề xuất trong câu hỏi khác của bạn

PROCEDURE get_stat (gender IN VARCHAR2) 
AS
    v_sql   varchar2(1000);
    v_param varchar2(100) := 'AVG_WEIGHT';
    v_stat  number;
BEGIN
    v_sql := 'SELECT ' || gender || ' FROM survey WHERE parameter = :1';
    EXECUTE IMMEDIATE v_sql
                 INTO v_stat
                USING v_param;
END get_stat;

Nhưng bạn sẽ có cùng những phản đối chung đã được nêu ra trong câu hỏi trước đó của bạn - mô hình dữ liệu về cơ bản là thiếu sót. Bạn sẽ được phục vụ tốt hơn nhiều nếu có một hàng riêng cho MALEFEMALE kết quả khảo sát thay vì có các cột riêng biệt cho malefemale kết quả.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tạo danh sách tất cả các ngày giữa sysdate-30 và sysdate + 30?

  2. ORACLE 10g:To_date () Không phải là tháng hợp lệ

  3. Lưu trữ thu thập dữ liệu Oracle chung

  4. Ánh xạ dữ liệu cột thành một giá trị (Oracle)

  5. PL / SQL không đủ đặc quyền trong một truy vấn có thể theo cách thủ công