正则表达式基础一
一、元字符: .(小圆点) 匹配除换行符号外的任意字符 w 匹配字母、数字、下划线 s 匹配任意空白字符 d 匹配数字 b 匹配单词的开始或结束 ^ 匹配字符串的开始,或排除 $ 匹配字符串的结束 以上都是单个字符匹配 如果要求匹配元字符中的符号,则需要加反斜杠。例如+表示匹配加号 wqe.eew.rt和wqe.eew.rt* 重复零次或多次 + 重复一次或多次 ? 重复零次或一次 {n} 重复n次 {n,} 至少重复n次 {n,m} 重复n到m次 d{1,3}.d{1,3}.d{1,3}.d{1,3}
集合运算
ORACLE10g增加了集合运算,方便各种操作,见具体实例:[@more@]DECLARETYPE t_tbls IS TABLE OF VARCHAR2(20);t_tbl1 t_tbls;t_tbl2 t_tbls;t_tbl3 t_tbls;t_tbl4 t_tbls;t_tbl5 t_tbls;BEGINt_tbl1 := t_tbls('a', 'b', 'c');t_tbl2 := t_tbls('a', 'b', 'd', 'c');t_tbl3 := t_tbls('a', 'c', 'b');t_tbl5 := t_tbls('a', 'b', 'a', 'c');-- 1、 =的用法IF t_tbl1 = t_tbl3 THENdbms_output.put_line('1、' || q'{t_tbls('a', 'b', 'c')}' || ' = ' ||q'{t_tbls('a', 'c', 'b')}');END IF;-- 2、<>的用法IF t_tbl1 <> t_tbl
函数DETERMINISTIC
确定性函数Oracle引入确定性函数的主要原因是为了提高以及函数的索引的性能,并最小化代价。因此,如果希望使用pl/sql函数使用给予函数的索引的基础,那么需要确保这个函数是确定性函数。确定性函数的性能好处是如果使用相同的输入调用函数两次,Oracle可以记住第一个调用的结果因此避免在第二次执行时再次调用。但是该功能直到10g Release 2才被真正实施[@more@]经典例子如下:CREATE TABLE test02(a NUMBER,b VARCHAR2(100));INSERT INTO test02 VALUES(1,'aa');INSERT INTO test02 VALUES(2,'bb');INSERT INTO test02 VALUES(2,'cc');I
编译指令PRAGMA SERIALLY_REUSABLE
当对包进行第一次实例的时候,将从磁盘读入该包的中间代码并将其放入系统全局工作区SGA的共享缓冲区中。然而,包的运行状态,即打包的变量和游标,将存放在用户全局区(UGA)的会话存储区中。这就保证了每个会话都将有其自己的包运行状态的副本。在包头包括在包体的首部声明的变量与游标的作用域为全局范围,这些变量对于具有EXECUTE 特权的任何PL/SQL块都是可见的。由于包的运行状态时在UGA中存放的,所以他们有与数据库会话相同的生命期。当包被实例时,其运行状态也得到初始化,并且这些状态直到会话结束才被释放。即使包本身由于超时被从