Comment puis-je confirmer qu’une firebase database est Oracle et quelle version utilise SQL?

Je construis un installateur pour une application. L’utilisateur peut sélectionner une source de données qu’il a configurée et indiquer le type de firebase database qu’il est. Je souhaite confirmer que le type de firebase database est bien Oracle et, si possible, quelle version d’Oracle ils exécutent en envoyant une instruction SQL à la source de données.

Exécutez ce SQL:

select * from v$version; 

Et vous obtiendrez un résultat comme:

 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 

Deux méthodes:

 select * from v$version; 

te donnera:

 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 

OU Identifier votre version du logiciel de firebase database Oracle :

 select * from product_component_version; 

te donnera:

 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 
 SQL> SELECT version FROM v$instance; VERSION ----------------- 11.2.0.3.0 

Vous pouvez soit utiliser

 SELECT * FROM v$version; 

ou

 SET SERVEROUTPUT ON EXEC dbms_output.put_line( dbms_db_version.version ); 

Si vous ne voulez pas parsingr la sortie de la version v $.

Si votre instance est en panne, vous recherchez des informations de version dans alert.log

Ou une autre façon brute est de regarder dans Oracle binary, si DB dans hébergé sur Linux, essayez des chaînes sur Oracle binary.

 ssortingngs -a $ORACLE_HOME/bin/oracle |grep RDBMS | grep RELEASE 

Si vous avez des privilèges, vous pouvez utiliser ci-dessous VIEW ou V$VERSION :

 SELECT VERSION FROM V$INSTANCE; 

Pour Oracle, utilisez:

 Select * from v$version; 

Pour un serveur SQL:

 Select @@VERSION as Version 

et pour MySQL:

 Show variables LIKE "%version%"; 

Voici une fonction 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 / 

Terminé.