Je construis un installateur pour une application. L'utilisateur doit sélectionner une source de données qu'il a configurée et nommer son type de base de données. Je souhaite confirmer que le type de base de données 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 Identification de votre version du logiciel de base de données 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 souhaitez pas analyser la sortie de v $ version.
Si votre instance est hors service, vous recherchez des informations sur la version dans alert.log.
Une autre méthode consiste à examiner le binaire Oracle. Si la base de données est hébergée sous Linux, essayez les chaînes sur le binaire Oracle.
strings -a $Oracle_HOME/bin/Oracle |grep RDBMS | grep RELEASE
Pour Oracle:
Select * from v$version;
Pour l'utilisation du serveur SQL:
Select @@VERSION as Version
et pour l'utilisation de MySQL:
Show variables LIKE "%version%";
Nous pouvons utiliser les méthodes ci-dessous pour obtenir le numéro de version d'Oracle.
Méthode n °: 1
set serveroutput on;
BEGIN
DBMS_OUTPUT.PUT_LINE(DBMS_DB_VERSION.VERSION || '.' || DBMS_DB_VERSION.RELEASE);
END;
Méthode n °: 2
SQL> select *
2 from v$version;
L'instruction SQL suivante:
select edition,version from v$instance
résultats:
(le privilège de sélection sur la vue v $ instance est bien sûr nécessaire)