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函数,游标,视图使用总结0.000000000000000000001的更多相关文章

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

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

  2. Oracle函数面试题

    1.对字符串操作的函数? 答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值 CHR() –函数用于将ASCII 码转换为字符 –如果没有输入0 ~ 255 之间的ASCII 码值C ...

  3. Oracle 函数高级查询

    目录 oracle高级查询 Oracle SQL获取每个分组中日期最新的一条数据 求平均值(为0的参数不均摊) 字符串清除前面的0 判断字符串串是否包含某个字符串 switch 判断 oracle不足 ...

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

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

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

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

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

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

  7. 查看SQL SERVER 加密存储过程,函数,触发器,视图

    原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create  PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset noc ...

  8. Oracle函数sys_connect_by_path 详解

    Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为:       s ...

  9. Oracle使用游标为所有用户表添加主键语句

    应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在I ...

随机推荐

  1. address_add

    <include file="Header:header-address_add" /> <include file="Header:header-pu ...

  2. uploadfile图片上传和ashx

    uploadify.swf需要是支持中文   $(function () {   //获取所有上传按钮id   $("div[id^='fileInput_']").each(fu ...

  3. 时间js转换方法Date("149...") 转成 2016-7-12 21:23:34 009

     function timeFormatter(value) {     var da = new Date(parseInt(value.replace("/Date(", &q ...

  4. 关于Fekit的安装与测试

    一. Fekit的安装 1.cmd输入指令 $ npm install fekit -g 2.初始化方法 $ fekit init 3.创建本地服务 $ fekit server 4.创建同时改端口( ...

  5. Glide请求图片能携带Cookie的哟!

    在Web编程中我们都很熟知一个概念,当有了seesion登录状态时,你可以访问一些资源但如果你没有登录的话很多资源是无法访问的. 在android的WebApi中当然一样拥有这个概念.比如,用户的头像 ...

  6. 启动Hive时出现的问题

    Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.RuntimeException: Unable to i ...

  7. java 使用map返回多个对象组装

    Object json=JSONObject.fromObject("{}"); List<Object> list = new ArrayList<Object ...

  8. 【leedcode】 Longest Palindromic Substring

    Given a , and there exists one unique longest palindromic substring. https://leetcode.com/problems/l ...

  9. JVM 内部运行线程介绍

    转(http://club.alibabatech.org/article_detail.htm?articleId=4) JVM 内部运行线程介绍 作者:蒋家佳/觉梦(支付宝开发工程师) 浏览量: ...

  10. C# async and await

    C# 5.0中引入了async 和 await.这两个关键字可以让你更方便的写出异步代码. 看个例子: public class MyClass { public MyClass() { Displa ...