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

Oracle RESET_PACKAGE ne réinitialise pas la valeur d'une variable dans la session

dbms_session.clear_all_context( 'app1_ctx' );

Vous devez transmettre le même espace de noms à clear_all_context que vous avez passé comme premier paramètre à set_context .

Si vous ne connaissez pas tous les contextes utilisés par votre application mais que vous connaissez tous les schémas qu'elle utilise

for ctx in (select * 
              from dba_context
             where schema in (<<schemas your application uses>>))
loop
  dbms_session.clear_all_context( ctx.namespace );
end loop;

Dans cet exemple, il n'y a pas de variables de package, il n'y aurait donc pas besoin d'appeler reset_package ou modify_package_state .