Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:oracle_datenbank_version

Die Datenbank Version im Detail unter Oracle 12c versus 19c auslesen

Mit der Version 19c ändert sich leider das Verhalten der Datenbank, um einfach die aktuelle Version auszulesen.

In den bisherigen Spalten steht nur noch die Mayor Version, die eigentliche Release Version muss nun in neuen Spalten ausgelesen werden.

Das ist in gemischten Umgebung sehr lästig, da ja nun pro DB Version ein anders SQL verwendet werden muss.


Unterschiedliche Anzeige mit den normale Abfragen:

--=================================
 
SELECT banner FROM v$version;
 
-- 19c
Oracle DATABASE 19c Enterprise Edition Release 19.0.0.0.0 - Production
 
--12c
Oracle DATABASE 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
 
--=================================
SELECT version FROM v$instance;
 
--19c
19.0.0.0.0
 
--12c
12.2.0.1.0
 
--=================================
SELECT version FROM dba_registry  WHERE comp_id = 'CATALOG';
 
--19c
19.0.0.0.0
 
--12c
12.2.0.1.0
 
 
--=================================
 
SET serveroutput ON
 
DECLARE
 
v_ver varchar2(32);
v_comp varchar2(32);
 
BEGIN
 
DBMS_UTILITY.DB_VERSION (
       version => v_ver
     , compatibility => v_comp
   );
 
dbms_output.put_line('Datenbank Version       ::'||v_ver);
dbms_output.put_line('Datenbank Compabiltity  ::'||v_ver);
 
 
END;
/    
 
 
--19c
Datenbank Version       ::19.0.0.0.0
Datenbank Compabiltity  ::19.0.0.0.0
 
--12c
Datenbank Version       ::12.2.0.1.0
Datenbank Compabiltity  ::12.2.0.1.0
 
 
 
--=================================
SET serveroutput ON
BEGIN   
   dbms_output.put_line('Datenbank Version       :: '||DBMS_DB_VERSION.VERSION);
   dbms_output.put_line('Datenbank Release       :: '||DBMS_DB_VERSION.RELEASE);   
END;
/   
 
--19c
Datenbank Version       :: 19
Datenbank Release       :: 0
 
--12c
 
Datenbank Version       :: 12
Datenbank Release       :: 2

D.h. die Minor Version der Datenbank lässt sich in 19c so nicht mehr auslesen.


In 19c die vollständige Version abfragen

Die passende Information befindet sich nun in den neuen Spalten xxxx_full wie:

--=================================
SELECT banner_full FROM  v$version;
 
BANNER_FULL
------------------------------------------------------------------------------
Oracle DATABASE 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
 
--=================================
SELECT version_full FROM v$instance;
 
VERSION_FULL
------------------------------------------------
19.3.0.0.0
 
 
--=================================
 
SELECT version_full FROM dba_registry  WHERE comp_id = 'CATALOG';
 
VERSION_FULL
-------------------------------------------------------------------------------
19.3.0.0.0
 
 
--=================================
 
SELECT version_full  FROM DBA_REGISTRY_HIERARCHY WHERE comp_id='1 CATALOG'
 
 
VERSION_FULL
-------------
19.3.0.0.0
 
--=================================
SELECT VERSION_FULL FROM PRODUCT_COMPONENT_VERSION;
 
VERSION_FULL
-------------
19.3.0.0.0

Patch Stand abfragen

Ist die DB schon mal gepatchet worden, kann das auch über diese Info ausgelesen werden:

COLUMN a_time      format a10
COLUMN action      format a16
COLUMN namespace   format a8
COLUMN version     format a15
COLUMN id          format a20
COLUMN comments    format a35
COLUMN bundle_series  format a6
 
SELECT to_char(action_time, 'dd.mm.yyyy') AS a_time
      , action
      , namespace
      , version
      , comments	  
  FROM sys.registry$history
 ORDER BY action_time DESC NULLS LAST
/

Ab 12c (hier nur die Spalten die in 12c und 19c zur Verfügung stehen):

  SELECT patch_id
       , STATUS
       , action_time
       , description
    FROM dba_registry_sqlpatch
ORDER BY action_time DESC
/

Allerdings ist zu beachten, das ab 19c die View auch einige Spalten mehr hat!


Java Version

SELECT  dbms_java.get_ojvm_property(PROPSTRING=>'java.version') AS JAVA_VERSION FROM dual;
 
JAVA_VERSION
------------------------------------------------------------------------------------------------------
1.8.0_201

Bit Version

So kann überprüft werden ob ursprünglich das eine 32 Bit DB war:

--10.2.0.3 Note:412271.1
SELECT decode(instr(metadata,'B023'),0,'64bit Database','32bit Database') AS "DB Creation"
  FROM kopm$
/  

Quellen

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
"Autor: Gunther Pipperr"
dba/oracle_datenbank_version.txt · Zuletzt geändert: 2020/09/02 13:43 von gpipperr