Le logiciel de base de données Oracle, offre la possibilité de créer des DB_Links. Possibilité intéressante s’il en est, mais qu’est-ce qu’un DB_link?
Le DB_link ou database link est un objet d’une base de données permettant d’exécuter des requêtes sur une autre base de données, qu’elle se trouve physiquement sur la même machine ou qu’elle soit distante. Cela va notamment permettre, par exemple d’effectuer des jointures entres des tables qui ne sont pas sur la même base.
Nous allons donc, nous intéresser aux différentes opérations de création, utilisation et suppression sur cet objet.
- Création du database link
La création s’effectue via la requête suivante :
1 2 3 |
SQL> CREATE [PUBLIC] DATABASE LINK "database_link" CONNECT TO "oracle_user" IDENTIFIED BY "password_user" USING 'connection_string' ; |
Remarque : L’option PUBLIC peut être précisée pour préciser que le DB_link peut être utilisé par n’importe quel utilisateur. Le paramètre connection_string doit être rajouté dans le fichier tnsnames.ora pour que les bases de données puissent communiquer.
Si le lien ne fonctionne pas, vérifiez la connexion entre les 2 bases de données (ping des machines, tnsping, etc…)
- Utilisation du database link
Pour utiliser notre DB_link, il suffira de rajouter le paramètre : @database_link après le nom de la table à interroger, par exemple :
1 |
SQL> SELECT * FROM dual@database_link; |
Remarque : Il sera maintenant possible d’exécuter des instructions DML (data manipulation langage) sur la base de données distante (insert, update & delete).
- Suppression du database link
1 |
SQL> DROP DATABASE LINK database_link; |