Oracle
 sql >> Base de données >  >> RDS >> Oracle

PL/SQL :réécrivez l'instruction SELECT à l'aide du paramètre IN dans la procédure stockée

Vous auriez besoin d'utiliser la même approche SQL dynamique que celle suggérée dans votre autre question

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;

Mais vous auriez les mêmes objections générales qui ont été soulevées dans votre question précédente - le modèle de données est fondamentalement défectueux. Vous seriez bien mieux servi d'avoir une ligne séparée pour MALE et FEMALE résultats de l'enquête plutôt que d'avoir des colonnes séparées pour male et female résultats.