La base de données Oracle lien. Vérifier l'existence ou la remplacer?
J'ai besoin de vérifier si un lien de base de données existe déjà avant de m'en créer un. Comment puis-je le faire?
Je suis en train d'écrire un script SQL qui commence par:
DROP DATABASE LINK mydblink
puis-je en créer un:
CREATE DATABASE LINK mydblink
CONNECT TO testuser
IDENTIFIED BY mypswd
USING 'mypersonaldb'
Je vais bien sûr obtenez une erreur dans la première étape, si le lien de base de données n'existe pas. Et si je omettre la première étape et juste aller de l'avant et de créer une base de lien, je vais de nouveau une erreur indiquant qu'il existe déjà avec le même nom.
Que puis-je faire pour vérifier si le lien de base de données existe déjà?
OriginalL'auteur Oliver Nilsen | 2012-02-08
Vous devez vous connecter pour publier un commentaire.
Par exemple (non testé):
Pourquoi ne pas
USER_DB_LINKS
??count(1) est vraiment le même que count(*). J'aurais pu dire count ("Oliver") ou count('à l'os').
dans certaines situations, l'utilisateur qui exécute le script peut ne pas être le propriétaire du lien (par exemple, le propriétaire peut être PUBLIC). Mais oui, souvent de plus de 1 voie à la peau d'un chat
Pouvez-vous fournir un exemple de code comment je pourrais vérifier si le lien existe, si non, alors en créer un, ou bien continuer avec le reste du script. Je suis nouveau sur le PL/SQL.
OriginalL'auteur tbone
Oracle a aucun moyen de tester l'existence du fichier avant une CHUTE ou à CRÉER. (Bon, ok, vous pourriez écrire quelque PL/SQL, mais, qui est probablement le plus d'ennuis que cela vaut la peine.) Dans Oracle de script, c'est assez standard pour le faire simplement la CHUTE de la et les CRÉER dans un script. Si la GOUTTE d'erreurs, ainsi soit-il. Il n'affecte pas l'exécution du script.
Marque
Est-ce que votre script d'avoir un "chaque fois que la fonction sqlerror ..." clause? Parce que si vous le faites, à l'origine de la sortie. Si vous venez de mettre un tas de DROP/CREATE dans un script et l'exécuter dans SQL*Plus, il devrait fonctionner. Je vais regarder à la mise à jour de ma réponse avec PL/SQL par exemple.
OriginalL'auteur Mark J. Bobak