sql >> Databasteknik >  >> RDS >> Oracle

PL/SQL:skriv om SELECT-satsen med IN-parametern i den lagrade proceduren

Du skulle behöva använda samma dynamiska SQL-metod som föreslogs i din andra fråga

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;

Men du skulle ha samma allmänna invändningar som togs upp i din tidigare fråga - datamodellen är fundamentalt felaktig. Det skulle vara mycket bättre att ha en separat rad för MALE och FEMALE undersökningsresultat istället för att ha separata kolumner för male och female resultat.



  1. ... där count(col)> 1

  2. Rails SQL-fråga med % jokertecken fungerar i SQLite men inte PostgreSQL?

  3. Hur konverterar man ett tidsstämpelfält till int8? Eller bara släppa kolumnen och skapa en ny?

  4. Aktivera Python för att ansluta till MySQL via SSH Tunneling