web-dev-qa-db-de.com

Wie kann ich feststellen, dass es sich bei einer Datenbank um Oracle handelt und welche Version SQL verwendet?

Ich baue ein Installationsprogramm für eine Anwendung. Der Benutzer kann eine von ihm konfigurierte Datenquelle auswählen und angeben, um welche Art von Datenbank es sich handelt. Ich möchte bestätigen, dass es sich bei dem Datenbanktyp tatsächlich um Oracle handelt, und wenn möglich, welche Version von Oracle sie ausführen, indem Sie eine SQL-Anweisung an die Datenquelle senden.

155
modius

Führen Sie diese SQL aus:

select * from v$version;

Und Sie erhalten ein Ergebnis wie: 

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
271
Tony Andrews

Zwei Methoden:

select * from v$version;

werde dir geben:

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

ODER Identifizieren Ihrer Oracle Database-Softwareversion :

select * from product_component_version;

werde dir geben:

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

Sie können entweder verwenden

SELECT * FROM v$version;

oder

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

wenn Sie die Ausgabe von v $ version nicht analysieren möchten.

7
Peter Lang

Wenn Ihre Instanz inaktiv ist, suchen Sie in alert.log nach Versionsinformationen

Oder eine andere grobe Methode ist der Blick auf Oracle-Binärdateien. Wenn DB unter Linux gehostet wird, versuchen Sie, Strings auf Oracle-Binärdateien auszuführen.

strings -a $Oracle_HOME/bin/Oracle |grep RDBMS | grep RELEASE
3
user3362908

Für Oracle verwenden:

Select * from v$version;

Für SQL Server verwenden:

Select @@VERSION as Version

und für MySQL verwenden:

Show variables LIKE "%version%";
1
Jack

Wir können die folgenden Methoden verwenden, um die Versionsnummer von Oracle zu ermitteln.

Methode Nr .: 1

set serveroutput on;
BEGIN 
DBMS_OUTPUT.PUT_LINE(DBMS_DB_VERSION.VERSION || '.' || DBMS_DB_VERSION.RELEASE); 
END;

Methode Nr .: 2

SQL> select *
  2  from v$version;
0
Lova Chittumuri

Die folgende SQL-Anweisung:

select edition,version from v$instance

kehrt zurück:

  • datenbank Edition zB. "XE"
  • datenbankversion zB 12.1.0.2.0

(Das Privileg für die v $ -Instanzansicht ist natürlich erforderlich.)

0
Pancho