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

Oracle:cómo usar variables locales de procedimiento para declaraciones EXECUTE IMMEDIATE en procedimientos

Una variable local del procedimiento se puede vincular al marcador de posición de la consulta con USING [OUT][IN] cláusula:

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

Pero para esta consulta no necesita execute immediate , solo haz:

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

en Oracle 11g puede hacerlo usando el operador de asignación:

  local_id number;
BEGIN
  local_id := SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL;