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

Paramétrage du nom de la table dans le fichier d'entrée sqlplus

Le problème est que SQL*Plus traite la chaîne entière après le & , jusqu'au prochain espace blanc ou similaire, comme nom de la variable de substitution. Ce n'est clairement pas ce que vous voulez ici.

Heureusement, ils y ont pensé et vous pouvez indiquer la fin du nom de la variable avec un . :

FROM &3._TABLE

(Au moins, cela fonctionne pour les variables nommées, et je suis presque sûr que ce sera le cas pour les variables positionnelles... sinon, vous devrez définir une nouvelle variable définie sur &3 comme solution de contournement).

C'est dans la documentation , mais clignez des yeux et vous le manquerez :

Il y a un effet connexe que vous voudrez peut-être garder à l'esprit pour l'avenir. Si le caractère suivant après la variable de substitution est un . de toute façon - entre le schéma et la table, ou entre la table et la colonne, par exemple - alors cela sera interprété comme le terminateur de substitution. Supposons que vous transmettiez le schéma séparément en tant que &4 , avec la valeur 'scott'; ceci :

FROM &4.&3._TABLE

semble raisonnable mais serait remplacé par scottdev_TABLE , qui ne sera pas reconnu. Donc, dans ce cas, vous devez en avoir un supplémentaire :

FROM &4..&3._TABLE

qui serait remplacé par scott.dev_TABLE .