sql >> Base de Datos >  >> RDS >> Oracle

¿Seleccionando valores de Oracle Table Variable / Array?

Es posible que necesite una MESA TEMPORAL GLOBAL.

En Oracle, estos se crean una vez y luego, cuando se invocan, los datos son privados para su sesión.

Enlace de documentación de Oracle

Prueba algo como esto...

CREATE GLOBAL TEMPORARY TABLE temp_number
   ( number_column   NUMBER( 10, 0 )
   )
   ON COMMIT DELETE ROWS;

BEGIN 
   INSERT INTO temp_number
      ( number_column )
      ( select distinct sgbstdn_pidm 
          from sgbstdn 
         where sgbstdn_majr_code_1 = 'HS04' 
           and sgbstdn_program_1 = 'HSCOMPH' 
      ); 

    FOR pidms_rec IN ( SELECT number_column FROM temp_number )
    LOOP 
        -- Do something here
        NULL; 
    END LOOP; 
END; 
/