查询以获取Oracle DB版本

rvpgvaaj  于 2023-10-16  发布在  Oracle
关注(0)|答案(3)|浏览(116)

我正在寻找一种方法来获得Oracle DB Server版本为“X.Y.Z”。
我可以从这里使用查询,但它将显示一个版本,而不仅仅是一个服务器。
我可以使用v$version视图,但结果字符串将包含更多的不仅仅是“X.Y.Z”。
有没有一个简单的方法可以得到我想要的东西?

klh5stk1

klh5stk11#

SQL

SELECT version FROM PRODUCT_COMPONENT_VERSION
 WHERE product LIKE 'Oracle Database%';

测试结果:

VERSION
----------
18.0.0.0.0

18 c/19 c:VERSION_FULL还显示已安装的版本更新
查看V$PRANCE(需要对PRANCE.V_$PRANCE的SELECT权限):

SELECT version FROM v$instance;

DBA_REGIONAL(需要对DBA_REGIONAL的SELECT权限):
显示每个已安装组件的版本。

SELECT * FROM dba_registry 
 WHERE comp_id = 'CATALOG';

PL/SQL

DECLARE
   l_version       VARCHAR2(20);
   l_compatibility VARCHAR2(20);
BEGIN
   DBMS_UTILITY.DB_VERSION(l_version, l_compatibility);
   DBMS_OUTPUT.PUT_LINE(l_version);
END;
/

测试结果:

18.0.0.0.0

更短:

BEGIN
   DBMS_OUTPUT.PUT_LINE(DBMS_DB_VERSION.VERSION|| '.' || DBMS_DB_VERSION.RELEASE);
END;
/

测试结果:

18.0
5sxhfpxr

5sxhfpxr2#

为什么不直接查询v$instance?

SQL> select version from v$instance;

VERSION
-----------------
12.2.0.1.0

不需要在pl/sql或调用过程上浪费时间。

igsr9ssn

igsr9ssn3#

SELECT * FROM v$version WHERE banner LIKE 'Oracle %';

相关问题