
Envoyé par
NULL008
bonjour a tous
je cherche a afficher les listes des bases de données existant dans mon instance sous MYSQL je l'affiche a travers
j'ai essayer sous oracle a travers
select name from v$database;
mais cette requête il m'affiche seulement une seul base de donnée
alors sur mon instance j'ai des multidatabase
Pour info j'ai exécuté cette requête a travers SQL DEVELLOPER
Qui a une idée comment je peut afficher toutes les bases existant
merci
À moins d’être en multi-tenant (donc version 12c) Oracle ne dispose que d'une seule base par instance contrairement à tous les autres SGBDR... En revanche, une utilisation détournée d'oracle fait que souvent les utilisateurs utilisent la notion de schéma SQL comme si c'était des bases... Histoire de ne pas payer encore plus cher !
Donc regarde si la liste de tes schémas ne correspond pas à cette demande...
1 2 3 4 5
| SELECT DISTINCT owner
FROM dba_segments
WHERE owner in (SELECT username
FROM dba_users
WHERE default_tablespace NOT IN ('SYSTEM','SYSAUX')); |
ou encore :
1 2 3 4 5 6
| SELECT username
FROM dba_users u
WHERE EXISTS (SELECT NULL
FROM dba_objects o
WHERE o.owner = u.username )
AND default_tablespace not in ('SYSTEM','SYSAUX'); |
Comme tu le voir, dans oracle chaque schémas est impérativement associé à un utilisateur de même nom qui est propriétaire du schéma et il n'existe aucun moyen de modifier cette architecture absurde !
Dans la norme SQL, la requête serait triviale :
SELECT * FROM INFORMATION_SCHEMA.SCHEMATA
Mais oracle n'implémente pas non plus la norme SQL !
A +
Partager