Oracle常用函数整理

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出现的第二次的位置

猜你喜欢

转载自lengrenhanbing.iteye.com/blog/1622095