Comment puis-je faire SQL Developer/SQL+ invite une seule fois pour une variable de substitution qui se produit plusieurs fois dans un même énoncé?
J'ai une requête à peu près comme ceci:
select *
from A_TABLE
where A_COLUMN = '&aVariable'
union
select *
from A_TABLE
where B_COLUMN = '&aVariable';
Mais quand je le lance, SQL Developer m'invite pour la variable deux fois, même si c'est la même variable.
Si il y a une façon de faire, il invite une seule fois pour une variable qui est utilisée deux fois, comment dois-je faire?
Je ne pas souhaitez utiliser un script, il doit être un exécutable unique requête.
OriginalL'auteur Trampas Kirk | 2009-04-09
Vous devez vous connecter pour publier un commentaire.
Comme je l'ai été de la formation de ce post, j'ai compris comment faire:
SQL Developer invite ensuite pour lier des variables, vous pouvez l'entrer et cliquez sur appliquer.
OriginalL'auteur Trampas Kirk
Remarquez comment le 2e (et les suivantes) variables utilisez le double esperluette (&&)
OriginalL'auteur user313218
Je sais que vous avez trouvé un autre moyen de le faire, mais pour info la réponse de base est que si vous double-up de l'esperluette (par exemple, utiliser "&&aVariable'), alors la valeur que vous entrez pour la variable de substitution sera rappelé pour la durée de votre session. Notez que dans ce cas, si vous ré-exécuter la requête que vous ne serez pas invité à nouveau, il va continuer à utiliser la même valeur.
Le &&-méthode est idéale pour les DDL-scripts
Comment faites-vous la force de la
&&variable
pour demander une nouvelle valeur?Vous vous souhaitez fermer votre session de base de données et en ouvrir un nouveau, ou explicitement la destruction de la variable. Dans SQLPlus, ce dernier serait
UNDEFINE variable
; sur le dessus de ma tête, vous ne savez pas si le principe est le même travail dans SQL Developer.OriginalL'auteur Dave Costa
Ainsi, lorsque vous utilisez & substitution vous êtes juste en utilisant le & une façon plus rapide au lieu d'avoir à taper une valeur une fois de plus. En utilisant le && la valeur est verrouillé pour le nom de la variable. Donc &&variable serait différent de &&variable1. En le faisant de cette façon, vous serez invité une fois et que la valeur que vous avez entré sera respecté que le nom de la variable. Suffit de mettre, si vous écrivez votre code comme ceci:
Alors si vous souhaitez utiliser un autre ensemble de valeurs, vous aurez à changer le nom de la variable à quelque chose comme cela "&&aVariable3 " et "&&aVariable4 " devrait être suffisant pour un autre jeu.
OriginalL'auteur Juarren Helgerson