Oracle database 19c中獲取當前資料庫版本的方法

xfhuangfu發表於2021-01-10

1、透過sqlplus命令列方式

sqlplus 命令列工具能以最直接的方式獲取資料庫版本資訊

[oracle@db19do01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Sun Jan 10 20:10:35 2021
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL>


2、查詢v$version檢視

這個檢視提供了資料庫的標誌,並根據資料庫版本提供了一些關於核心資料庫元件的附加資訊,可以在資料庫處於NOMOUNT狀態時使用。 從18c開始,新增了列BANNER_FULL,幷包含多行字串,其中還包括髮布更新版本號。

SQL> select BANNER from v$version;
BANNER
-------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
SQL>
SQL> 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
SQL>
nomount
 
SQL> startup nomount
ORACLE instance started.
 
Total System Global Area 1157627896 bytes
Fixed Size                  9134072 bytes
Variable Size             503316480 bytes
Database Buffers          637534208 bytes
Redo Buffers                7643136 bytes
SQL> select open_mode from v$database;
select open_mode from v$database                      *
ERROR at line 1:
ORA-01507: database not mounted
 
 
SQL> show pdbs
SQL> SELECT version, version_legacy, version_full FROM v$instance;
VERSION              VERSION_LEGACY    VERSION_FULL
-------------------- ----------------- --------------------
19.0.0.0.0           19.0.0.0.0        19.3.0.0.0
SQL> 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
 
 
SQL>

3、     查詢



從18c開始, VERSION_FULL 顯示包含已安裝版本更新的版本。

SELECT version, version_full FROM product_component_version;

SQL> col version for a20
SQL> col version_full for a20
SQL> SELECT version, version_full FROM product_component_version;
VERSION              VERSION_FULL
-------------------- --------------------
19.0.0.0.0           19.3.0.0.0

4、查詢v$instance檢視

SQL> desc v$instance
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 INSTANCE_NUMBER                                    NUMBER
 INSTANCE_NAME                                      VARCHAR2(16)
 HOST_NAME                                          VARCHAR2(64)
 VERSION                                            VARCHAR2(17)
 VERSION_LEGACY                                     VARCHAR2(17)
 VERSION_FULL                                       VARCHAR2(17)
 STARTUP_TIME                                       DATE
 STATUS                                             VARCHAR2(12)
 PARALLEL                                           VARCHAR2(3)
 THREAD#                                            NUMBER
 ARCHIVER                                           VARCHAR2(7)
 LOG_SWITCH_WAIT                                    VARCHAR2(15)
 LOGINS                                             VARCHAR2(10)
 SHUTDOWN_PENDING                                   VARCHAR2(3)
 DATABASE_STATUS                                    VARCHAR2(17)
 INSTANCE_ROLE                                      VARCHAR2(18)
 ACTIVE_STATE                                       VARCHAR2(9)
 BLOCKED                                            VARCHAR2(3)
 CON_ID                                             NUMBER
 INSTANCE_MODE                                      VARCHAR2(11)
 EDITION                                            VARCHAR2(7)
 FAMILY                                             VARCHAR2(80)
 DATABASE_TYPE                                      VARCHAR2(15)
SQL> SELECT version, version_legacy, version_full FROM v$instance;
 
VERSION              VERSION_LEGACY    VERSION_FULL
-------------------- ----------------- --------------------
19.0.0.0.0                 19.0.0.0.0        19.3.0.0.0
 
SQL>
nomount狀態下:
SQL> shu immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount
ORACLE instance started.
 
Total System Global Area 1157627896 bytes
Fixed Size                  9134072 bytes
Variable Size             503316480 bytes
Database Buffers          637534208 bytes
Redo Buffers                7643136 bytes
SQL> select open_mode from v$database;
select open_mode from v$database                      *
ERROR at line 1:
ORA-01507: database not mounted
SQL> show pdbs
SQL> SELECT version, version_legacy, version_full FROM v$instance;
 
VERSION              VERSION_LEGACY    VERSION_FULL
-------------------- ----------------- --------------------
19.0.0.0.0           19.0.0.0.0        19.3.0.0.0
 
SQL>

5、查詢dba_registry和cdb_registry

SQL> SELECT version, version_full FROM dba_registry
      WHERE comp_id = 'CATALOG';  
 
VERSION              VERSION_FULL
-------------------- --------------------
19.0.0.0.0           19.3.0.0.0
 
 
SQL>  SELECT version, version_full,CON_ID FROM cdb_registry
  2  WHERE comp_id = 'CATALOG';
 
VERSION              VERSION_FULL             CON_ID
-------------------- -------------------- ----------
19.0.0.0.0           19.3.0.0.0                    1
19.0.0.0.0           19.3.0.0.0                    3
 
SQL> show pdbs
 
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 XFPDB                          READ WRITE NO
SQL>


6、透過 呼叫PL/SQL 方法

這個包沒有過程或函式,但是提供了獲取版本和釋出號的常量。常量只能在 PL/SQL 塊中使用。用這個包是不可能得到補丁集或釋出更新版本號。

 

SQL> SET SERVEROUTPUT ON
SQL> EXEC DBMS_OUTPUT.PUT_LINE(DBMS_DB_VERSION.VERSION || '.' || DBMS_DB_VERSION.RELEASE);
 19.0
PL/SQL procedure successfully completed.
SQL>


6.2 DBMS_UTILITY

PL/SQL 塊過程中, DB_VERSION 可以用於提取當前資料庫版本和當前設定的相容版本。

SQL> SET SERVEROUTPUT ON
SQL> DECLARE
   v_version          VARCHAR2(50);
   v_compatibility    VARCHAR2(50);
BEGIN
   DBMS_UTILITY.DB_VERSION (
      version => v_version,
      compatibility => v_compatibility
   );
 
   DBMS_OUTPUT.PUT_LINE('Version:       ' || v_version);
   DBMS_OUTPUT.PUT_LINE('Compatibility: ' || v_compatibility);
END;
/  2    3    4    5    6    7    8    9   10   11   12   13
Version:       19.0.0.0.0
Compatibility: 19.0.0
PL/SQL procedure successfully completed.
SQL>


-the end-

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28373936/viewspace-2748857/,如需轉載,請註明出處,否則將追究法律責任。

相關文章