===== 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====
Oracle
* http://docs.oracle.com/en/database/oracle/oracle-database/20/upgrd/oracle-database-release-numbers.html#GUID-1E2F3945-C0EE-4EB2-A933-8D1862D8ECE2__GUID-5747ECCD-9B91-49A7-B702-4FF475DE009A
Script siehe => https://github.com/gpipperr/OraPowerShell/blob/master/Ora_SQLPlus_SQLcL_sql_scripts/version.sql