gratis edition descargar descarga 12c 11g 10g oracle oracle10g

edition - oracle download



Comprobando el nombre del sid y del orĂ¡culo de Oracle (6)

Como se ha mencionado anteriormente,

select global_name from global_name;

es el camino a seguir.

No se pudo consultar v $ database / v $ instance / v $ thread porque su usuario no tiene los permisos necesarios. Puede otorgarlos (a través de una cuenta DBA) con:

grant select on v$database to <username here>;

Quiero verificar el SID y el nombre de la base de datos actual.

Estoy usando la siguiente consulta para verificar el SID de Oracle

select instance from v$thread;

pero la tabla o vista no existe, el error viene.

Estoy usando la siguiente consulta para verificar el nombre de la base de datos actual

select name from v$database;

pero la tabla o vista no existe, el error viene.

Alguna idea para los dos problemas anteriores?


Escriba en el símbolo del sistema sqlplus

SQL> select * from global_name;

a continuación, se verá el resultado en el símbolo del sistema

SQL ORCL.REGRESS.RDBMS.DEV.US.ORACLE.COM

Aquí primero uno "ORCL" es el nombre de la base de datos, puede ser su sistema "XE" y otro que se dio en el momento de la descarga del Oracle.


Las vistas V $ son principalmente vistas dinámicas de las métricas del sistema. Se utilizan para la optimización del rendimiento, la supervisión de sesiones, etc. Por lo tanto, el acceso está limitado a los usuarios de DBA de manera predeterminada, por lo que ORA-00942 .

La forma más fácil de encontrar el nombre de la base de datos es:

select * from global_name;

Esta vista se concede a PUBLIC, por lo que cualquiera puede consultarla.


Si, como yo, su objetivo es obtener el host de la base de datos y SID para generar una url Oracle JDBC, como

jdbc:oracle:thin:@<server_host>:1521:<instance_name>

los siguientes comandos ayudarán:

Comando de consulta de Oracle para verificar el SID (o nombre de instancia):

select sys_context(''userenv'',''instance_name'') from dual;

Comando de consulta de Oracle para verificar el nombre de la base de datos (o el host del servidor):

select sys_context(''userenv'', ''server_host'') from dual;

Att. Sergio Marcelo


Solo para completar, también puedes usar ORA_DATABASE_NAME.

Vale la pena señalar que no todos los métodos le dan el mismo resultado:

SQL> select sys_context(''userenv'',''db_name'') from dual; SYS_CONTEXT(''USERENV'',''DB_NAME'') -------------------------------------------------------------------------------- orcl SQL> select ora_database_name from dual; ORA_DATABASE_NAME -------------------------------------------------------------------------------- ORCL.XYZ.COM SQL> select * from global_name; GLOBAL_NAME -------------------------------------------------------------------------------- ORCL.XYZ.COM


Supongo que select user from dual; debería darle el usuario actual

y select sys_context(''userenv'',''instance_name'') from dual; el nombre de la instancia

Creo que puede obtener SID como SELECT sys_context(''USERENV'', ''SID'') FROM DUAL; ( No puedo verificar esto ahora )