Oracle
 sql >> Baza danych >  >> RDS >> Oracle

PL/SQL:przepisz ponownie instrukcję SELECT za pomocą parametru IN w procedurze składowanej

Musisz użyć tego samego podejścia do dynamicznego SQL, które sugerowano w Twoim innym pytaniu

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;

Ale mielibyście te same ogólne zastrzeżenia, które pojawiły się we wcześniejszym pytaniu – model danych jest fundamentalnie wadliwy. Znacznie lepiej byłoby Ci mieć osobny wiersz dla MALE i FEMALE wyniki ankiety zamiast oddzielnych kolumn dla male i female wyniki.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie funkcji agregacji do filtrowania rekordu na podstawie znacznika czasu MIN

  2. Mapowanie typu niestandardowego Oracle UDT dla nie zostało określone lub jest nieprawidłowe

  3. Czy Oracle może uruchamiać funkcje wiersza poleceń systemu Windows?

  4. Proszę o podanie kodu ceny tylko wtedy, gdy wpisz :=E

  5. Wskazówka Oracle WITH i MATERIALIZE działa jako autonomiczna transakcja dla funkcji