新特性
NinGoo's blog

Oracle11g新特性:虚拟列virtual column

Oracle11g引入了一个新的特性:虚拟列(Virtual Column)。虚拟列不进行实际的存储,而是通过函数计算得到。目前版本只能在普通的堆表中使用虚拟列,其他如index-organized table, external, object, cluster, 或者temporary table中都还不支持使用虚拟列。


SQL> create table test(i1 int, i2 int,i3 as (i1+i2) virtual);

Table created.

其中,virtual关键字可以省略。这样,i3列就是一个基于i1列和i2列计算得到的一个虚拟列。


NING@11g> insert into test values(1,2,3);
insert into test values(1,2,3)
*
ERROR at line 1:
ORA-54013: INSERT operation disallowed on virtual columns

NING@11g> insert into test(i1,i2) values(1,2);

1 row created.

SQL> commit;

Commit complete.

SQL> select * from test;

I1 I2 I3
———- ———- ———-
1 2 3

[继续阅读全文]

Oracle11g新特性:RMAN压缩备份

Oracle10g的rman已经可以执行压缩备份,采用的压缩算法是bzip2。Oracle11g引入了一种新的压缩算法zlib。zlib的压缩率不如bzip2,但是压缩速度则要快不少。本文通过一个实验来对这两种压缩算法进行比较。


[oracle@localhost oracle]$ rman target /

Recovery Manager: Release 11.1.0.6.0 – Production on Thu Sep 6 15:47:43 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: NING (DBID=1218842970)

[继续阅读全文]

Oracle11g新特性:server result cache续二

Server Result Cache应该是Oracle11g新特性中比较令人期待的,很多人都在研究这个特性,比如eygleyangtingkun都为这个特性写了一系列的文章。

Server Result Cache实际上是两个特性,一个是SQL Result Cache,一个是PL/SQL Function Result Cache。在上一篇文章中简单展示了SQL Result Cache的特性,这里打算说说PL/SQL Function Result Cache。

要在PL/SQL Function中启用result cache特性,只需要在创建function时添加RESULT_CACHE子句即可。另外还有一个RELIES_ON子句,可以指定该function依赖的对象,如果该对象改变则会导致该function缓存结果失效。

创建一个测试函数

NING@11g>create or replace function f_result_cache
2 return int
3 result_cache
4 as
5 l_count int;
6 begin
7 select count(*) into l_count
8 from all_objects;
9 — pause for 5 second
10 dbms_lock.sleep(5);
11 return l_count;
12 end f_result_cache;
13 /

Function created.

[继续阅读全文]

Oracle10g新特性:Language and Character Set File Scanner(LCSSCAN)

Oracle10gR1引入了一个叫做Language and Character Set Detection (LCSD) 的新特性,可以快速高效的确定一个文件中的字符所适用的字符集。LCSD可以通过Oracle提供的GDK(Globalization Development Kit) java API接口调用。基于该特性,Oracle也提供了一个命令行工具LCSSCAN(Language and Character Set File Scanner)。从Oracle10gR2开始该工具还支持对HTML文件的扫描。

LCSSCAN的语法很简单,基本上一看就会使用:

D:\>lcsscan help

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation. All rights reserved.

You can control how LCSSCAN runs by entering the LCSSCAN command
followed by the required parameters. To specify parameters, you use
keywords:

Example: LCSSCAN RESULTS=2 END=1000 FORMAT=HTML FILE=index.html

Keyword Description (Default)
——————————————————————–
RESULTS number of language and character set pairs to return (1)
BEGIN beginning byte offset of file (1)
END ending byte offset of file (end of file)
FORMAT file format TEXT, HTML or AUTO detect (TEXT)
FILE name of input file
HELP show help screen (this screen)

FILE就是要扫描的文件,BEGINEND则指定只扫描文件的部分内容。RESULTS指明要返回几组可用的结果,因为一个文件可能兼容于多种字符集。FORMAT指明文件的类型。

D:\>lcsscan file=test.txt

Language and Character Set File Scanner v2.1

(c) Copyright 2003, 2004 Oracle Corporation. All rights reserved.

test.txt: SIMPLIFIED CHINESE ZHS16CGB231280;