Avec l'aide de cette commande show databases;
Je peux voir les bases de données dans MySQL .
Comment afficher les bases de données disponibles dans Oracle ?
Avec l'aide de cette commande show databases;
Je peux voir les bases de données dans MySQL .
Comment afficher les bases de données disponibles dans Oracle ?
Je pense que c'est ce que la question demandait. Ou du moins, c'est ce à quoi je pense quand j'entends "base de données"... par opposition à schéma (ou utilisateur).
Si, par exemple, vous utilisez Oracle Database Express Edition, cela donne quelque chose comme XE
c'est-à-dire le nom unique qui identifie de manière unique votre instance/base de données (est-il appelé SID ?). De l'autre côté, le nom de MySQL show databases
imprime ce que MySQL appelle la base de données aka schema (à peu près ce que vous obtenez avec SELECT USERNAME FROM DBA_USERS
dans Oracle).
Certaines bases de données oracle ont beaucoup d'utilisateurs sans objets. Pour ceux-ci, une alternative est SELECT DISTINCT OWNER FROM ALL_OBJECTS ;
+Si vous n'êtes pas un utilisateur privilégié et que vous lancez cette requête, vous ne verrez que les propriétaires pour lesquels vous avez un privilège sur au moins un de leurs objets.
La requête à DBA_USERS donne un "ORA-00942 : table or view does not exist", peut-être un problème de permission ? La requête en commentaire "SELECT DISTINCT OWNER FROM ALL_OBJECTS ;" fonctionne avec les mêmes informations d'accès. db 11g
Oracle ne dispose pas d'un modèle de base de données simple comme MySQL ou MS SQL Server. Je trouve que la chose la plus proche est d'interroger les tablespaces et les utilisateurs correspondants dans ces tablespaces.
Par exemple, j'ai un tablespace DEV_DB qui contient toutes mes bases de données réelles :
SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES;
Résultant en :
SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE DEV_DB
Il est également possible d'interroger les utilisateurs dans tous les tablespaces :
SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS;
Ou dans un tablespace spécifique (en utilisant mon tablespace DEV_DB comme exemple) :
SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS where DEFAULT_TABLESPACE = 'DEV_DB';
ROLES DEV_DB
DATAWARE DEV_DB
DATAMART DEV_DB
STAGING DEV_DB
Vous pourriez peut-être utiliser cette vue, mais je n'en suis pas sûr.
select * from v$database;
Mais je pense qu'il ne vous montrera que des informations sur la base de données actuelle.
Une autre option, si la base de données tourne sous Linux... serait quelque chose comme ceci :
SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc
Bonjour @a1an. Sans aucun doute, v$database existe dans 11g. Vérifiez si vous exécutez la requête avec des droits suffisants. Vous trouverez ici la documentation sur v$database pour oracle 11g. docs.oracle.com/cd/B28359_01/server.111/b28320/… Algo, ici vous avez un post avec un exemple sur l'utilisation de v%database dans oracle 11g. neeraj-dba.blogspot.com.es/2011/10/ Bonne chance !
Je ne suis pas très clair à ce sujet mais typiquement un serveur a une base de données (avec plusieurs utilisateurs), si vous créez plusieurs bases de données, cela signifie que vous créez aussi plusieurs instances, listeners, .... Vous pouvez donc vérifier votre LISTENER
pour l'identifier.
Dans mes tests, j'ai créé 2 bases de données ( dbtest
y dbtest_1
) donc quand j'ai vérifié mon statut de LISTENER il est apparu comme ceci :
lsnrctl status
....
STATUT de l'ÉCOUTEUR
.....
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.10.20.20)(PORT=1521))))
Résumé des services...
Le service "dbtest" a 1 instance(s).
L'instance "dbtest", statut READY, a 1 handler(s) pour ce service...
Le service "dbtest1XDB" a 1 instance(s).
L'instance "dbtest1", statut READY, a 1 handler(s) pour ce service...
Le service "dbtest_1" a 1 instance(s).
L'instance "dbtest1", statut READY, a 1 handler(s) pour ce service... La commande s'est terminée avec succès
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.