Oracle
 sql >> Base de données >  >> RDS >> Oracle

Oracle :Comment utiliser les variables locales de procédure pour les instructions EXECUTE IMMEDIATE dans les procédures

Une variable locale de la procédure peut être liée à l'espace réservé de la requête avec USING [OUT][IN] clause :

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

Mais pour cette requête, vous n'avez pas besoin de execute immediate , faites simplement :

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

sur Oracle 11g, vous pouvez le faire en utilisant l'opérateur d'affectation :

  local_id number;
BEGIN
  local_id := SYS_LOCAL_ID_SERIAL_SEQ.NEXTVAL;