如何确认数据库是Oracle以及使用SQL的版本?

mod*_*ius 160 sql oracle

我正在为应用程序构建安装程序.用户可以选择他们已配置的数据源并指定它是什么类型的数据库.我想确认数据库类型确实是Oracle,如果可能,通过向数据源发送SQL语句来确定它们运行的​​Oracle版本.

Ton*_*ews 279

运行此SQL:

select * from v$version;
Run Code Online (Sandbox Code Playgroud)

你会得到一个结果:

BANNER
----------------------------------------------------------------
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Solaris: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
Run Code Online (Sandbox Code Playgroud)

  • 我用过的所有Oracle版本.我不能代表Oracle 5.0及之前发言! (2认同)

小智 46

两种方法:

select * from v$version;
Run Code Online (Sandbox Code Playgroud)

会给你:

Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Solaris: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
Run Code Online (Sandbox Code Playgroud)

识别您的Oracle数据库软件版本:

select * from product_component_version;
Run Code Online (Sandbox Code Playgroud)

会给你:

PRODUCT VERSION STATUS
NLSRTL  11.1.0.6.0  Production
Oracle Database 11g Enterprise Edition  11.1.0.6.0  64bit Production
PL/SQL  11.1.0.6.0  Production
TNS for Solaris:    11.1.0.6.0  Production
Run Code Online (Sandbox Code Playgroud)


Ugu*_*gur 29

SQL> SELECT version FROM v$instance;
VERSION
-----------------
11.2.0.3.0
Run Code Online (Sandbox Code Playgroud)


Pet*_*ang 7

你可以使用

SELECT * FROM v$version;
Run Code Online (Sandbox Code Playgroud)

要么

SET SERVEROUTPUT ON
EXEC dbms_output.put_line( dbms_db_version.version );
Run Code Online (Sandbox Code Playgroud)

如果你不想解析v $ version的输出.