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

Oracle:come utilizzare le variabili locali della procedura per le istruzioni ESEGUI IMMEDIATE nelle procedure

Una variabile locale della procedura può essere associata al segnaposto della query con USING [OUT][IN] clausola:

  local_id number;
BEGIN
  EXECUTE IMMEDIATE 
       'SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into :local_id FROM dual'
     USING OUT local_id;

Ma per questa query non è necessario execute immediate , fai solo:

  local_id number;
BEGIN
  SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into local_id FROM dual;

su Oracle 11g puoi farlo usando l'operatore di assegnazione:

  local_id number;
BEGIN
  local_id := SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL;