sql - puedo - toad for oracle download
¿Cómo puedo confirmar que una base de datos es Oracle y qué versión usa SQL? (8)
Estoy construyendo un instalador para una aplicación. El usuario puede seleccionar una fuente de datos que haya configurado y nominar qué tipo de base de datos es. Quiero confirmar que el tipo de base de datos es de hecho Oracle y, de ser posible, qué versión de Oracle están ejecutando enviando una declaración SQL a la fuente de datos.
Aquí hay una función simple:
CREATE FUNCTION fn_which_edition
RETURN VARCHAR2
IS
/*
Purpose: determine which database edition
MODIFICATION HISTORY
Person Date Comments
--------- ------ -------------------------------------------
dcox 6/6/2013 Initial Build
*/
-- Banner
CURSOR c_get_banner
IS
SELECT banner
FROM v$version
WHERE UPPER(banner) LIKE UPPER(''Oracle Database%'');
vrec_banner c_get_banner%ROWTYPE; -- row record
v_database VARCHAR2(32767); --
BEGIN
-- Get banner to get edition
OPEN c_get_banner;
FETCH c_get_banner INTO vrec_banner;
CLOSE c_get_banner;
-- Check for Database type
IF INSTR( UPPER(vrec_banner.banner), ''EXPRESS'') > 0
THEN
v_database := ''EXPRESS'';
ELSIF INSTR( UPPER(vrec_banner.banner), ''STANDARD'') > 0
THEN
v_database := ''STANDARD'';
ELSIF INSTR( UPPER(vrec_banner.banner), ''PERSONAL'') > 0
THEN
v_database := ''PERSONAL'';
ELSIF INSTR( UPPER(vrec_banner.banner), ''ENTERPRISE'') > 0
THEN
v_database := ''ENTERPRISE'';
ELSE
v_database := ''UNKNOWN'';
END IF;
RETURN v_database;
EXCEPTION
WHEN OTHERS
THEN
RETURN ''ERROR:'' || SQLERRM(SQLCODE);
END fn_which_edition; -- function fn_which_edition
/
Hecho.
Dos métodos:
select * from v$version;
Te regalaré:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Solaris: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
O identificando su versión de software de la base de datos Oracle :
select * from product_component_version;
Te regalaré:
PRODUCT VERSION STATUS
NLSRTL 11.1.0.6.0 Production
Oracle Database 11g Enterprise Edition 11.1.0.6.0 64bit Production
PL/SQL 11.1.0.6.0 Production
TNS for Solaris: 11.1.0.6.0 Production
Ejecute este SQL:
select * from v$version;
Y obtendrás un resultado como:
BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
Para el uso de Oracle:
Select * from v$version;
Para el uso del servidor SQL:
Select @@VERSION as Version
y para el uso de MySQL:
Show variables LIKE "%version%";
Puedes usar
SELECT * FROM v$version;
o
SET SERVEROUTPUT ON
EXEC dbms_output.put_line( dbms_db_version.version );
si no desea analizar el resultado de v $ version.
Si su instancia no funciona, busque la información de la versión en alert.log
O bien, otra manera cruda es buscar en el binario de Oracle. Si el DB está alojado en Linux, intente cadenas en Oracle binary.
strings -a $ORACLE_HOME/bin/oracle |grep RDBMS | grep RELEASE
Si tiene privilegios, puede usar a continuación VIEW
, o V$VERSION
:
SELECT VERSION FROM V$INSTANCE;
SQL> SELECT version FROM v$instance;
VERSION
-----------------
11.2.0.3.0