Dans Oracle Database, il existe un certain nombre de vues que nous pouvons interroger pour savoir si une table existe.
Exemple
Par exemple, USER_TABLES
décrit les tables relationnelles appartenant à l'utilisateur actuel.
SELECT TABLE_NAME
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES';
Résultat :
COUNTRIES
Dans cet exemple, j'ai vérifié s'il existe une table relationnelle appelée COUNTRIES
qui appartient à l'utilisateur actuel.
Nous pourrions ajuster cette requête pour ne renvoyer que le nombre :
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'COUNTRIES';
Résultat :
1
Dans ce cas, le nom de la table existe et le nombre est donc 1
.
Voici ce qui se passe lorsque la table n'existe pas :
SELECT COUNT(TABLE_NAME)
FROM USER_TABLES
WHERE TABLE_NAME = 'USERS';
Résultat :
0
Le tableau suivant répertorie d'autres vues contenant des informations sur les tables d'Oracle Database.
Afficher | Description |
---|---|
USER_TABLES | Décrit les tables relationnelles appartenant à l'utilisateur actuel (cette vue est utilisée dans l'exemple ci-dessus). |
ALL_TABLES | Décrit les tables relationnelles accessibles à l'utilisateur actuel. |
DBA_TABLES | Décrit toutes les tables relationnelles de la base de données. |
USER_ALL_TABLES | Décrit les tables d'objets et les tables relationnelles appartenant à l'utilisateur actuel. |
DBA_ALL_TABLES | Décrit toutes les tables d'objets et les tables relationnelles de la base de données. |
ALL_ALL_TABLES | Décrit les tables d'objets et les tables relationnelles accessibles à l'utilisateur actuel. |