sql >> Database teknologi >  >> RDS >> Oracle

PL/SQL:genskriv SELECT-sætning ved hjælp af IN-parameteren i den lagrede procedure

Du skal bruge den samme dynamiske SQL-tilgang, som blev foreslået i dit andet spørgsmål

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 ville have de samme generelle indvendinger, som blev rejst i dit tidligere spørgsmål - datamodellen er grundlæggende fejlbehæftet. Du ville være meget bedre tjent med at have en separat række for MALE og FEMALE undersøgelsesresultater i stedet for at have separate kolonner for male og female resultater.



  1. NLS_LOWER() Funktion i Oracle

  2. Nye registreringer siden sidste forespørgsel i MySQL View

  3. ORA-00927:manglende lighedstegn

  4. Sådan tilføjes Failover Partner til en forbindelsesstreng i VB.NET