Ste*_*ote 4 database oracle oracle11g
我需要找出一种方法来确定Oracle是11g还是更新,因为基本上我需要知道我运行的数据库是否支持PIVOT.
得到版本号如果自己不那么困难,所以我得到:
select * from v$version
Run Code Online (Sandbox Code Playgroud)
不幸的是,这并不是一个简单的数字,而是包括叮咬和各种不同版本号的5条记录:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi
PL/SQL Release 10.2.0.5.0 - Production
CORE 10.2.0.5.0 Production
TNS for Linux: Version 10.2.0.5.0 - Production
NLSRTL Version 10.2.0.5.0 - Production
Run Code Online (Sandbox Code Playgroud)
那么,如果数据库支持PIVOT语句,有没有办法确定我的Oracle是11g还是更高,甚至更好?
谢谢!
确定Oracle版本是否支持的方法之一PIVOT是查询V $ RESERVED_WORDS视图以查明保留字PIVOT是否存在.
SQL> select keyword
2 from v$reserved_words
3 where keyword = 'PIVOT'
4 ;
KEYWORD
---------
PIVOT
Run Code Online (Sandbox Code Playgroud)
如果您正在编写一个代码(正如您在@ Ben的答案,引用的评论中所提到的那样I'm creating a procedure that generates and executes SQL statements for a datamart),它将利用特定于版本的功能(并且它是首选方法)使用dbms_db_version包进行条件编译.例如:
create or replace some_proc
is
begin
$if dbms_db_version.ver_le_10_2 -- for example
$then
-- features up to 10g r2 version
$else
-- current release
$end
end;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1523 次 |
| 最近记录: |