查询以获取 Oracle 数据库版本
Query to get Oracle DB version
全部,
我正在寻找一种方法来获取 Oracle 数据库服务器版本为“X.Y.Z”。
我可以使用来自 here 的查询,但它会显示一个不只是服务器的版本。
我可以使用 v$version
视图,但生成的字符串将包含的不仅仅是“X.Y.Z”。
有没有一种简单的方法可以得到我想要的东西?
TIA!!
SELECT * 来自 v$version WHERE banner LIKE 'Oracle%';
SQL
SELECT version FROM PRODUCT_COMPONENT_VERSION
WHERE product LIKE 'Oracle Database%';
结果:
VERSION
----------
18.0.0.0.0
18c/19c: VERSION_FULL
还显示已安装的版本更新
查看 V$INSTANCE(需要对 SYS.V_$INSTANCE 的 SELECT 权限):
SELECT version FROM v$instance;
DBA_REGISTRY(需要 SYS.DBA_REGISTRY 的 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
为什么不只查询 v$instance?
SQL> select version from v$instance;
VERSION
-----------------
12.2.0.1.0
无需处理 pl/sql 或调用的过程。
全部,
我正在寻找一种方法来获取 Oracle 数据库服务器版本为“X.Y.Z”。
我可以使用来自 here 的查询,但它会显示一个不只是服务器的版本。
我可以使用 v$version
视图,但生成的字符串将包含的不仅仅是“X.Y.Z”。
有没有一种简单的方法可以得到我想要的东西?
TIA!!
SELECT * 来自 v$version WHERE banner LIKE 'Oracle%';
SQL
SELECT version FROM PRODUCT_COMPONENT_VERSION
WHERE product LIKE 'Oracle Database%';
结果:
VERSION
----------
18.0.0.0.0
18c/19c: VERSION_FULL
还显示已安装的版本更新
查看 V$INSTANCE(需要对 SYS.V_$INSTANCE 的 SELECT 权限):
SELECT version FROM v$instance;
DBA_REGISTRY(需要 SYS.DBA_REGISTRY 的 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
为什么不只查询 v$instance?
SQL> select version from v$instance;
VERSION
-----------------
12.2.0.1.0
无需处理 pl/sql 或调用的过程。