博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Oracle常用函数整理

Posted on 2012-08-02 16:21  开拓者2012  阅读(161)  评论(0编辑  收藏  举报

1、replace函数
replace这个函数,具体用法如下:
2011-08-02

update 表1 t set t.列1=replace((select 列1from 表1 a where a.主键列=t.主键列) , '/' , '-' ) 

输出 2012/08/02

replace 函数用法如下:
replace('将要更改的字符串','被替换掉的字符串','替换字符串')
例:select replace ('111222333444','222','888') from dual;
输出为 '111888333444'
2、变量赋值及字符串连接

strSql := strSql || ' where ('||strQxjg || ')';

||连接字符串或数字

3、execute immediate
一个存储过程当中 创建了一个表 table_a 然后要用insert into将其他的数据插入到这个table_a当中,但是因为你在创建过程的时候 table_a还不存在,过程就会显示有编译错误,因为table_a不存在必然导致过程无法执行,所以无法编译成功,而把insert into语句加如到 execute immediate之后 则oracle不会再去理会这个对象是否存在,因此可以成功编译和执行。
intCount integer :=0;
execute immediate 'select count(*) from (' || strSql || ') t' into intCount;
4、字符串连接处理
可以用ASCII码处理,其它特殊字符如&也一样,如
insert into t values('i'||chr(39)||'m'); -- chr(39)代表字符'
或者用两个单引号表示一个
or insert into t values('I''m'); -- 两个''可以表示一个'
例如:

SELECT V.DWMC, GXY.*,TNB.TNBCS, TNB.TNBSZ, CJ.CJCS, CJ.CJSZ 
FROM (SELECT SUBSTR(XQBH, 1, :1) TJFW, 
SUM(DECODE(STATE, 1, 1, 0)) GXYCS, 
SUM(DECODE(STATE, 2, 1, 0)) GXYSZ 
FROM WV_MBTJ A 
WHERE BSMC = ' || CHR(39) || '高血压' || CHR(39) || ' 
AND SUBSTR(XQBH, 1, :3) = :2 
AND JDRQ BETWEEN :4 AND :5 
GROUP BY SUBSTR(XQBH, 1, :1) ) GXY

5、goto

只能由内部的语句块跳转到外部块

--调整至标签位置
goto label; 
--定义标签
<<label>>
dbms_output.put_line('跳出循环');

6、oracle的substr函数的用法

取得字符串中指定起始位置和长度的字符串 substr( string, start_position, [ length ] )
如: 

substr('This is a test', 6, 2) would return 'is'
substr('This is a test', 6) would return 'is a test'
substr('TechOnTheNet', -3, 3) would return 'Net'
substr('TechOnTheNet', -6, 3) would return 'The'
select substr('Thisisatest', -4, 2) value from dual 结果是 te
select substr('emros',-3,1) value from dual 结果是 r


substr('abcde',-6) = null 
substr('abcde',-5) = 'abcde' 
substr('abcde',-4) = 'bcde' 
substr('abcde',-3) = 'cde' 
substr('abcde',-2) = 'de' 
substr('abcde',-1) = 'e' 
substr('abcde',-0) = 'abcde'

7、oracle的instr函数的用法

基本用法:instr( string1, string2 [, start_position [, nth_appearance ] ] )

string1  源字符串,要在此字符串中查找。

string2  要在string1中查找的字符串.

start_position  代表string1 的哪个位置开始查找。默认是1

nth_appearance  代表要查找第几次出现的string2. 默认是1

如果没有找到,则返回0;

例如:

SELECT instr('syranmo','s') FROM dual; -- 返回 1

SELECT instr('syranmo','ra') FROM dual; -- 返回 3

SELECT instr('syran mo','a',1,2) FROM dual; -- 返回 0 ,查找a出现的第二次的位置