Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle:Como usar variáveis ​​locais de procedimento para instruções EXECUTE IMMEDIATE em procedimentos


Uma variável local do procedimento pode ser vinculada ao espaço reservado da consulta com 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;

Mas para esta consulta você não precisa de execute immediate , apenas faça:
  local_id number;
BEGIN
  SELECT SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL into local_id FROM dual;

no Oracle 11g você pode fazer isso usando o operador de atribuição:
  local_id number;
BEGIN
  local_id := SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL;