文档章节

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

D冰城
 D冰城
发布于 2017/02/06 10:44
字数 1143
阅读 3
收藏 0

##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为空那么显示第三个参数的expr3的值, 如果第一个参数expr1的值不为空,则显示第二个参数expr2的值, 即:NVL2(表达式,不为空设值,为空设值)

##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

© 著作权归作者所有

D冰城
粉丝 0
博文 4
码字总数 3903
作品 0
浦东
私信 提问
MySQL存储过程的创建及调用

原文连接 https://www.cnblogs.com/geaozhang/p/6797357.html#chuangjian #SQL语句:先编译后执行 存储过程(Stored Procedure):   一组可编程的函数,是为了完成特定功能的SQL语句集,经编...

---dgw博客
2018/07/15
0
0
Java开发

JVM 内存溢出实例 - 实战 JVM(二) 介绍 JVM 内存溢出产生情况分析 Java - 注解详解 详细介绍 Java 注解的使用,有利于学习编译时注解 Java 程序员快速上手 Kotlin 11 招 这篇文章主要是写给...

掘金官方
2018/01/04
0
0
机器学习.周志华《13 半监督学习 》

半监督学习SSL的3种假设: (1) 平滑假设(Smoothness Assumption) 位于稠密数据区域的两个距离很近的样例的类标签相似,当两个样例北稀疏区域分开时,它们的类标签趋于不同。 (2) 聚类假...

julialove102123
2018/04/19
0
0
理解开发HD 钱包涉及的 BIP32、BIP44、BIP39

如果你还在被HD钱包、BIP32、BIP44、BIP39搞的一头雾水,来看看这边文章吧。 数字钱包概念 钱包用来存钱的,在区块链中,我们的数字资产都会对应到一个账户地址上, 只有拥有账户的钥匙(私钥...

深入浅出区块链
2018/09/28
0
0
oracle查看包存储过程,函数,以及存储过程参数,函数参数

1. 今天查看系统代码时意识到系统中有太多的包以及它们的参数实在太多不容易记,所以想做一个查询,把它们都查出来 2. 查看系统中用到的包中所包含的存储过程,函数等 SELECT U.PACKAGENAME...

rudy_gao
2014/04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

rime设置为默认简体

转载 https://github.com/ModerRAS/ModerRAS.github.io/blob/master/_posts/2018-11-07-rime%E8%AE%BE%E7%BD%AE%E4%B8%BA%E9%BB%98%E8%AE%A4%E7%AE%80%E4%BD%93.md 写在开始 我的Arch Linux上......

zhenruyan
今天
5
0
简述TCP的流量控制与拥塞控制

1. TCP流量控制 流量控制就是让发送方的发送速率不要太快,要让接收方来的及接收。 原理是通过确认报文中窗口字段来控制发送方的发送速率,发送方的发送窗口大小不能超过接收方给出窗口大小。...

鏡花水月
今天
10
0
OSChina 周日乱弹 —— 别问,问就是没空

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @tom_tdhzz :#今日歌曲推荐# 分享容祖儿/彭羚的单曲《心淡》: 《心淡》- 容祖儿/彭羚 手机党少年们想听歌,请使劲儿戳(这里) @wqp0010 :周...

小小编辑
今天
1K
11
golang微服务框架go-micro 入门笔记2.1 micro工具之micro api

micro api micro 功能非常强大,本文将详细阐述micro api 命令行的功能 重要的事情说3次 本文全部代码https://idea.techidea8.com/open/idea.shtml?id=6 本文全部代码https://idea.techidea8....

非正式解决方案
今天
5
0
Spring Context 你真的懂了吗

今天介绍一下大家常见的一个单词 context 应该怎么去理解,正确的理解它有助于我们学习 spring 以及计算机系统中的其他知识。 1. context 是什么 我们经常在编程中见到 context 这个单词,当...

Java知其所以然
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部