oracle函数,游标,视图使用总结0.000000000000000000001
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的更多相关文章
- oracle函数,游标,视图使用总结
oracle函数或者叫存储过程,在实际的开发过程中对于复杂的业务需求是非常有用的,非常有效率的也是非常好玩儿的一个技术点. 平常在开发过程中对于CRUD功能较多.一般SQL即可应付,大不了就是长一点而 ...
- Oracle函数面试题
1.对字符串操作的函数? 答:ASCII() –函数返回字符表达式最左端字符的ASCII 码值 CHR() –函数用于将ASCII 码转换为字符 –如果没有输入0 ~ 255 之间的ASCII 码值C ...
- Oracle 函数高级查询
目录 oracle高级查询 Oracle SQL获取每个分组中日期最新的一条数据 求平均值(为0的参数不均摊) 字符串清除前面的0 判断字符串串是否包含某个字符串 switch 判断 oracle不足 ...
- MySql学习(四) —— 函数、视图
注:该MySql系列博客仅为个人学习笔记. 本篇博客主要涉及MySql 函数(数学函数.字符串函数.日期时间函数.流程控制函数等),视图. 一.函数 1. 数学函数 对于数学函数,若发生错误,所有数学 ...
- 【函数】Oracle函数系列(2)--数学函数及日期函数
[函数]Oracle函数系列(2)--数学函数及日期函数 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不 ...
- Oracle数据库之视图与索引
Oracle数据库之视图与索引 1. 视图简介 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改. 视图基于的表称为基表,视图是存储在数据字典里的一条SE ...
- 查看SQL SERVER 加密存储过程,函数,触发器,视图
原文:查看SQL SERVER 加密存储过程,函数,触发器,视图 create PROCEDURE sp_decrypt(@objectname varchar(50))ASbeginset noc ...
- Oracle函数sys_connect_by_path 详解
Oracle函数sys_connect_by_path 详解 语法:Oracle函数:sys_connect_by_path 主要用于树查询(层次查询) 以及 多列转行.其语法一般为: s ...
- Oracle使用游标为所有用户表添加主键语句
应用场合:数据表新增自增一主键能加快数据表的访问速度,而且是整形的索引速度最快.本程序适合在导入Oracle数据库时删除不存在主键的情况下运行. 代码说明:所有的表主键字段名都设置为ID,如果已存在I ...
随机推荐
- 【iCore3应用开发平台】发布 iCore3 应用开发平台PID控制代码
说明:1.本代码包包含FPGA和STM32F407两部分内容2.FPGA工程为出厂代码FPGA工程,版本为REV43.STM32F407为只含PID控制的ARM工程4.在使用风扇过程中,请勿将手伸入扇 ...
- HDU 3605 Escape(状压+最大流)
Escape Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Sub ...
- js中列表控件排序箭头,在wke中不支持的解决办法
列表中箭头,实际使用的在线css样式,wke不支持排序箭头(实际是字体)的在线css样式,可以客户端安装对应的字体,之后显示就正常了.
- Android如何做到应用程序图标隐藏,由第三方程序启动
在你App的AndroidManifest.xml中,将启动页做如下修改 <intent-filter> <action android:name="android.int ...
- swif-throws异常抛出
import UIKit enum VendingMachineError: Error { case invalidSelection //选择无效 case insufficientFunds(c ...
- 百度地图api
引入js <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak ...
- Thinking in Java——笔记(17)
Containers in Depth Full container taxonomy You can usually ignore any class that begins with " ...
- webbrowser 内核切换
修改注册表位置: [HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER ...
- sublime 添加代码片段(snippets)
1.工具-新代码片段(Tools -> New Snippet) 2. <snippet> <content><![CDATA[ if(\$rs && ...
- pip install 安装python-requests
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python-requests