Chcę sprawdzić SID i nazwę aktualnej bazy danych.
Używam następującego zapytania do sprawdzania identyfikatora SID Oracle
select instance from v$thread;
ale tabela lub widok nie istnieje, nadchodzi błąd.
Używam następującego zapytania do sprawdzenia aktualnej nazwy bazy danych
select name from v$database;
ale tabela lub widok nie istnieje, nadchodzi błąd.
Masz jakiś pomysł na powyższe dwa problemy?
select sys_context('userenv','db_name') from dual;
dla nazwy bazy danych i identyfikatora sid już dodałem w odpowiedzi. mam nadzieję, że to daje ci to, czego chceszJeśli, tak jak ja, Twoim celem jest uzyskanie hosta bazy danych i identyfikatora SID w celu wygenerowania adresu URL Oracle JDBC, as
następujące polecenia pomogą:
Polecenie zapytania Oracle w celu sprawdzenia identyfikatora SID (lub nazwy instancji):
Polecenie zapytania Oracle w celu sprawdzenia nazwy bazy danych (lub hosta serwera):
Att. Sergio Marcelo
źródło
Dla kompletności możesz również użyć ORA_DATABASE_NAME.
Warto zauważyć, że nie wszystkie metody dają takie same wyniki:
źródło
Wyświetlenia V $ to głównie dynamiczne widoki metryk systemowych. Są one używane do dostrajania wydajności, monitorowania sesji itp. Dlatego dostęp jest domyślnie ograniczony do użytkowników DBA, i dlatego otrzymujesz
ORA-00942
.Najłatwiejszym sposobem znalezienia nazwy bazy danych jest:
Ten widok jest przyznawany PUBLIC, więc każdy może go zapytać.
źródło
Wpisz w
sqlplus
wierszu poleceniawtedy zobaczysz wynik w wierszu polecenia
Tutaj pierwszy "ORCL" to nazwa bazy danych, może to być twój system "XE" i inne to, co zostało podane w czasie pobierania oracle.
źródło
Jak wspomniano powyżej,
jest droga do zrobienia.
Nie można wysłać zapytania do wątku v $ database / v $ instance / v $, ponieważ użytkownik nie ma wymaganych uprawnień. Możesz im przyznać (za pośrednictwem konta DBA):
źródło