Oracle
 sql >> база данни >  >> RDS >> Oracle

PL/SQL:пренапишете израза SELECT, като използвате IN параметър в съхранена процедура

Ще трябва да използвате същия динамичен SQL подход, който беше предложен в другия ви въпрос

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;

Но ще имате същите общи възражения, които бяха повдигнати в предишния ви въпрос - моделът на данните е фундаментално погрешен. Ще бъде много по-добре да имате отделен ред за MALE и FEMALE резултати от проучването, вместо да има отделни колони за male и female резултати.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да изберем доставчик на Oracle за .Net приложение?

  2. Какъв е еквивалентът на REF CURSOR на Oracle в MySQL, когато използвате JDBC?

  3. Процент SQL Oracle

  4. Не може да компилира PL/SQL с BULK COLLECT и FORALL

  5. Плюсове и минуси на използването на пакети в Oracle