记一次存储过程学习及存其常用函数

Oracle存储过程的基本语法:

1.CREATE OR REPLACE PROCEDURE 存储过程名
2.IS
3.BEGIN
4.NULL
5.END

行1:CREATE OR PROCEDURE是一个sql语句,通知oracle数据库去创建一个叫做skeleton存储过程,如果存在就覆盖它.
行2:IS关键词表明后面将跟随一个PL/SQL体.
行3:BEGIN关键词表明PL/SQL体的开始.
行4:NULL PL/SQL语句表明什么都不做,这句不能删去,因为PL/SQL体中至少需要有一名.
行5:END关键词表明PL/SQL体的结束

Oracle中decode()函数用法:

1.decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
该函数的含义如下:
IF 条件=值1 THEN
    RETURN(翻译值1)
ELSIF 条件=值2 THEN
    RETURN(翻译值2)
    ......
ELSIF 条件=值n THEN
    RETURN(翻译值n)
ELSE
    RETURN(缺省值)
END IF

2.decode(字段或字段的运算,值1,值2,值3)
这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3
当然值1,值2,值3也可以是表达式,这个函数使得某些sql语句简单了许多

oracle中instr() 和 substr()函数

在Oracle中,可以使用instr()函数对某个字符串进行判断,判断其是否含有指定的字符.
在一个指定字符串中查找指定的字符,返回被查找到的指定的字符的位置.

语法:
instr(sourceString,destString,start,appearPosition)
instr('源字符串','目标字符串','开始位置','第几次出现')
其中sourceString代表源字符串;destString代表要从源字符串中查找的字符串;
start代表查找的开始位置,这个参数是可选的,默认为1,
如果start的值为负数,则代表从右往左进行查找,但是位置数据仍然从左向右计算;
appearPosition代表想从源字符中查找出第几次出现的destString,这个参数也是可选,默认为1.
返回值为查找到的字符串的位置

对于instr()函数,通常是:从一个字符串中查找指定子字符串的位置.例如:

SQL>select instr('abcdefgh','de') position from dual;
position的返回值为:4
从1开始算,d排第4所以返回4

SQL>select instr('abcdefgh','bc',3) position from dual;
position的返回值为:9
从第3个字符开始算起,第3个字符是c,所以从3开始以后的字符串查找bc,返回9

SQL> select instr('qinyinglianqin','qin', 1, 2) position from dual;
position的返回值为:12
从第1个字符开始,查找第2次出现子串的位置,返回12

substr()函数,是从给定的字符表达式或备注字段中返回一个子字符串.

语法:substr(cExpression,nStartPosition, [nCharactersReturned])
cExpression指定要从其中返回字符串的字符表达式或备注字段;
nStartPosition用于返回的字符串在字符表达式或备注字段中的位置;
nCharactersReturned用于指定返回的字符数目,缺省时返回字符表达式的值结束前的全部字符.
substr('abcdefghijlkm',1,5)显示"abcde",1从第一个字符开始,截取的字符中,包括第一个字符
举例:
substr('abcdefghijlkm',6)显示"fghijklm"
substr('abcdefghijlkm',-2)显示“km”,最右边一个字符是-1,最右边左边的字符是-2
然后默认是从左向有取剩下的全部的字符
substr('abcdefghijlkm',-4)显示“jlkm”

注意: 此处截取的位置是字符串第一个字母即为1.

Oracle中nvl()和nvl2()函数

1.nvl()函数:
语法:nvl(expr1,expr2)
如果第一个参数expr1值为空,则显示第二个参数expr2的值,
如果第一个参数expr1的值不为空,则显示第一个参数expr1本来的值
2.nvl2()函数:
语法:nvl2(expr1,expr2,expr3)
如果该函数的第一个参数expr1为空那么显示第二个参数的expr2的值,
如果第一个参数expr1的值不为空,则显示第三个参数的值

Oracle中取整的几种函数

SELECT CEIL(-1.001) AS value FROM DUAL    --取整(取大),返回值为-1
SELECT FLOOR(-1.001) AS value FROM DUAL   --取整(取小),返回值为-2
SELECT TRUNC(-1.002) AS value FROM DUAL   --取整(截取),返回值为-1
SELECT ROUND(-1.001) AS value FROM DUAL   --取整(舍入),返回值为-1

Oracle中AS与IS的区别

单独的FUNCTION, PROCEDURE 习惯用AS
PACKAGE中的FUNCTION, PROCEDURE 用IS
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值