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