oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点。

平常在开发过程中对于CRUD功能较多。一般SQL即可应付,大不了就是长一点而已。但是遇到复杂业务需求,在Java代码中开发略显混乱时,函数将可以作为一个非常优秀的实现方式,在数据库中对业务进行处理。

下面介绍一下oracle函数的集中语法,小弟学艺不精,如有遗漏,请不吝指正:

oracle语法在编写过程中其实比较简单,首先它是一个脚本语言,也叫作解释性语言,脚本语言如python,js等的共有特点就是从上到下一行一行的执行。也就是说我们只要符合函数的语法,我们可以随意在函数里面写DML语句(CRUD)、DCL(GRANT)、DDL语句等,所有初次编写函数的时候可能无从下手,但其实语法非常随意。

1、那其实,首先我们需使用create or replace语句来创造函数,为什么要加一个replace(替代)单词,其实意思就是,由函数重名的情况就替换掉,这是因为在函数发包的时候可能要替换掉原来的函数。例子:

create or replace fn_xxx_aaa(arg1.arg2....)

end fn_xxx_aaa;

2、变量的定义

所谓函数,肯定要有参数,有返回值。但是oracle函数多了一个叫做输出值,也是程序调用之后可以接受到的一些查询结果或是游标。输入输出值定义在括号内。

3、游标及循环

其实游标就是一个缓存,例如,我们在函数里面进行判定的时候,我们可能需要遍历一个表的数据,那我们不能去把表里面的数据都查一遍,这样太浪费资源了,而且数据库是一种非常稀有的资源,所以我们就要把所有的数据都查出来,存在游标里面,去循环它,这样也可以得到游标里面的所有数据。

declare cursor XX_XX_XX is

  select * from aaa;

begin

open cursor;

loop

fetch XX_XX_XX into xx x xx xx x;

exit when XX_XX_XX%NOTFOUND;

  begin

xxxxxxxxxxxxxxxxxxx

  end;

end loop;

end;

上面的就是最简单的游标配合循环做业务的一些处理。先将游标数据抓取赋值给定义的某种变量,然后拿着变量一点一点做循环判断,对数据进行处理。

4、除了游标之外呢,还有一种东西也是常用到的一种东西,视图。

视图其实什么也不是,为什么说他什么也不是呢,因为视图就根本不存在,我们定义完了视图之后呢,其实就是在你的 sql之后添加了一些sql,比如说我们create了一个视图,其实还是将两个或者多个集合的数据搞到一个集合里面了,也就是你这个sql后面有添加了一段sql。

5、还有一个东西,表分区。

虽然做完之后效果不明显吧,但是毕竟对Linuxoracle服务器熟悉了,数据泵文件导入导出也很熟悉了。好吧,下一篇文章写数据泵文件的导入导出以及表分区。

第一次写这么长的博客,小弟年龄肯定比各位看官想的小得多,所以请随意指教,谢谢各位看官,希望对您对我都有所帮助。

oracle函数,游标,视图使用总结的更多相关文章

  1. oracle函数,游标,视图使用总结0.000000000000000000001

    oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...

  2. Oracle数据库之视图与索引

    Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...

  3. MySql学习(四) —— 函数、视图

    注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...

  4. 【函数】Oracle函数系列(2)--数学函数及日期函数

    [函数]Oracle函数系列(2)--数学函数及日期函数 1  BLOG文档结构图 2  前言部分 2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...

  5. Oracle之物化视图

    来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...

  6. 《oracle每天一练》Oracle之物化视图

    相关帖子思考和跟踪 本文转自Ronger 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实 ...

  7. oracle函数listagg的使用说明(分组后连接字段)

    关于oracle函数listagg的使用说明 工作中经常遇到客户提出这样的需求,希望在汇总合并中,能够把日期逐个枚举出来. 如图,原始数据是这样的: 客户希望能够实现这样的汇总合并: 那么通常我会使用 ...

  8. 浅谈Oracle函数返回Table集合

    在调用Oracle函数时为了让PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合 ...

  9. 设置ORACLE数据库游标大小

    先用超级管理员(sys)登陆服务器: sqlplus "sys/***@orcl as sysdba" 连接到:Oracle 查看ORACLE最大游标数: SQL> show ...

随机推荐

  1. Tensorflow安装记录

    一.安装Ubantu环境 下载ios 网址:http://cn.ubuntu.com/download/ 2.配合虚拟机进行安装环境 虚拟机直接百度下载即可 虚拟机采用 具体安装,虚拟机百度中很多记录 ...

  2. SQL SERVER 2016研究二

    2.动态数据屏蔽 创建数据表: 创建账号并授予获取屏蔽后数据的权限 此函数:partial(0,"XXX-XXXX-",4) 表示从左边0位开始依次替换到倒数4位. 注意:屏蔽只作 ...

  3. linux下禁止root远程登录和添加新用户

    https://www.cnblogs.com/jianz/p/7979250.html 一.添加和root权限一样的用户 1. adduser admin passwd  admin (修改密码) ...

  4. [dj]django常用设置

    关于django版本说明: Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(长期支持版本 LTS) 最后一个支持 Python 2.7 的版本 Django 2 ...

  5. openvpn-LDAP验证

    安装openvpn ldap apt-get install openvpn-auth-ldap mkdir -p /etc/openvpn/auth/ cp /usr/share/doc/openv ...

  6. linux git patch 和patch以及git diff 命令

    1.git log 查看commit id,修改前为id1,修改后id2 2.根据id1到id2有几次提交来生成几个patch,否则的话会根据所有节点生成很多patch 比如: commit id2 ...

  7. componentsSeparatedByString 的注意事项

    componentsSeparatedByString 两种情景 1. 没有分割符也生成一个数组,元素就是整个字符串本身,那你就需要判断“”这种字符串. 2. 分割的元素如果是相同的字符串,指向的是同 ...

  8. canvas 写一个刮刮乐抽奖

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. IntelliJ IDEA 17 本地LicenseServer激活

    注意:此方法适用于Idea v2017.2.x 版本及以前版本. IntelliJ IDEA及破解包下载地址:百度网盘   密码:hlko 一.将IntelliJIDEALicenseServer.e ...

  10. gcc 6.2.0/6.3.0/8.2.0 编译安装

    参考:http://www.linuxfromscratch.org/blfs/view/stable/general/gcc.html 下载地址在这里:https://ftp.gnu.org/gnu ...