За допомогою цієї команди show databases;
я бачу бази даних у MySQL .
Як показати доступні бази даних в Oracle ?
Відповіді:
Ви можете уявити "базу даних" MySQL як схему / користувача в Oracle. Якщо у вас є привілеї, ви можете запитати DBA_USERS
подання, щоб побачити список схем:
SELECT * FROM DBA_USERS;
SELECT * FROM DBA_USERS;
SELECT NAME FROM v$database;
показує ім'я бази даних в oracle
XE
, тобто унікальне ім'я, яке однозначно ідентифікує ваш екземпляр / базу даних (це називається SID?). З іншого боку, show databases
команда MySQL друкує те, що MySQL називає базою даних aka schema (приблизно те, що ви отримуєте SELECT USERNAME FROM DBA_USERS
в Oracle).
Oracle не має простої моделі бази даних, такої як MySQL або MS SQL Server. Я вважаю, що найближчим є запит до табличних просторів та відповідних користувачів у них.
Наприклад, у мене є таблична область DEV_DB із усіма моїми фактичними `` базами даних '' у них:
SQL> SELECT TABLESPACE_NAME FROM USER_TABLESPACES;
В результаті:
SYSTEM SYSAUX UNDOTBS1 TEMP USERS EXAMPLE DEV_DB
Також можна запитувати користувачів у всіх табличних просторах:
SQL> select USERNAME, DEFAULT_TABLESPACE from DBA_USERS;
Або в межах певної табличної області (на прикладі моєї табличної області DEV_DB):
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
Можливо, ви могли б використати цей погляд, але я не впевнений.
select * from v$database;
Але я думаю, що це покаже вам лише інформацію про поточну базу даних.
Інший варіант, якщо db працює в Linux ... це може бути приблизно так:
SQL>!grep SID $TNS_ADMIN/tnsnames.ora | grep -v PLSExtProc
Я не чітко про це, але зазвичай один сервер має одну базу даних (з великою кількістю користувачів), якщо ви створюєте багато баз даних, це означає, що ви також створюєте багато екземплярів, слухачів, .... Тож ви можете перевірити свійLISTENER
щоб його ідентифікувати.
Під час тестування я створив 2 бази даних ( dbtest
і dbtest_1
), тому, коли я перевіряв свій статус LISTENER, він виглядав так:
lsnrctl status
....
СТАТУС СЛУХАЧА
.....
(ОПИС = (АДРЕСА = (ПРОТОКОЛ = tcp) (HOST = 10.10.20.20) (PORT = 1521)))
Підсумок послуг ...
Служба "dbtest" має 1 примірник (и).
Екземпляр "dbtest", статус ГОТОВИЙ, має 1 обробник (и) для цієї послуги ...
Служба "dbtest1XDB" має 1 примірник (и).
Екземпляр "dbtest1", статус ГОТОВИЙ, має 1 обробник (и) для цієї послуги ...
Послуга "dbtest_1" має 1 примірник (и).
Екземпляр "dbtest1", статус ГОТОВИЙ, має 1 обробник (и) для цієї послуги ... Команда успішно виконана