Comment détecter l'état SCAN
actuel et le rétablir après l'avoir modifié?Rétablissement de l'état d'analyse lors de la demande de valeurs variables
Un Exerpt du script en question:
SET SCAN OFF
SET ECHO ON
SET SQLBLANKLINES ON
SET SCAN ON
UPDATE TABLE_NAME SET CREATED_BY = &&created_by;
SET SCAN OFF
Le problème est que si le script n'a pas la première ligne (SET SCAN OFF
), puis le code pour inviter l'utilisateur ne doit pas tourner l'état SCAN
éteint après. La solution de pseudo-code:
-- The next line might not exist, or be "SET SCAN ON".
SET SCAN OFF
SET ECHO ON
SET SQLBLANKLINES ON
-- Remember if the scanning was on or off.
PUSH SCAN STATE
SET SCAN ON
UPDATE TABLE_NAME SET CREATED_BY = &&created_by;
-- Revert scanning to its former state.
POP SCAN STATE
La ligne PUSH SCAN STATE
rappelle l'état de sorte que si le code est modifié en supprimant la première ligne, le reste du script fonctionne toujours comme prévu, en raison de la corresonding POP SCAN STATE
.
Vous pourriez SHOW SCAN' en haut et réinitialiser manuellement par la suite si nécessaire. –
@Jeffrey: Je suis à la recherche d'une solution automatisée. –
J'ai compris cela, c'est pourquoi j'ai fait le commentaire mais pas une réponse - je suppose qu'il n'y a pas de solution. –