我正在寻找一种方法来获得Oracle DB Server版本为“X.Y.Z”。我可以从这里使用查询,但它将显示一个版本,而不仅仅是一个服务器。我可以使用v$version视图,但结果字符串将包含更多的不仅仅是“X.Y.Z”。有没有一个简单的方法可以得到我想要的东西?
v$version
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权限):
VERSION_FULL
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
5sxhfpxr2#
为什么不直接查询v$instance?
SQL> select version from v$instance; VERSION ----------------- 12.2.0.1.0
不需要在pl/sql或调用过程上浪费时间。
igsr9ssn3#
SELECT * FROM v$version WHERE banner LIKE 'Oracle %';
3条答案
按热度按时间klh5stk11#
SQL
测试结果:
18 c/19 c:
VERSION_FULL
还显示已安装的版本更新查看V$PRANCE(需要对PRANCE.V_$PRANCE的SELECT权限):
DBA_REGIONAL(需要对DBA_REGIONAL的SELECT权限):
显示每个已安装组件的版本。
PL/SQL
测试结果:
更短:
测试结果:
5sxhfpxr2#
为什么不直接查询v$instance?
不需要在pl/sql或调用过程上浪费时间。
igsr9ssn3#
SELECT * FROM v$version WHERE banner LIKE 'Oracle %';