Oracle的静态游标与动态游标区别是什么

本篇内容介绍了“Oracle的静态游标与动态游标区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

成都创新互联公司网站建设公司一直秉承“诚信做人,踏实做事”的原则,不欺瞒客户,是我们最起码的底线! 以服务为基础,以质量求生存,以技术求发展,成交一个客户多一个朋友!专注中小微企业官网定制,成都网站制作、做网站、外贸营销网站建设,塑造企业网络形象打造互联网企业效应。

前言

我们在写Oracle的存储过程里面,经常会用到游标,Oracle里面的游标分为静态游标和动态游标。今天我们在说一下分别有什么不同。

静态游标和动态游标的概念

静态游标

显式游标和隐式游标称为静态游标,因为在使用他们之前,游标的定义已经完成,不能再更改。

定义:

Cursor 游标名(参数1,参数2......) is  查询语句

调用时:

for 变量行 in 游标名 loop

end loop;

动态游标

游标在声明时没有设定,在打开时可以对其进行修改。

定义:

TYPE 游标别名 IS REF CURSOR;

游标名 游标别名;

调用时:

open 游标名 for 动态SQL语句;

loop

    exit when 游标名%NOTFOUND;

    fetch 游标名

      into 变量1,变量2,变量3,变量4;

相对来说静态游标在存储过程中用到的会比较多,而动态游标相对较少,像我们如果存在分割表的时候,取数据时就会用到动态游标了。

代码演示

使用背景

我们在存储过程中输入开始和结束日期,用于查询开始到结束日期这一段时间内的销售。

解决思路

这个查询我们就可以用到静态游标和动态游标的结合使用。

  1. 通过静态游标设置开始和结果日期获取到所涉及到的当前年月。

  2. 根据获取到的当前年月生成要查询对应的月份分割表的动态SQL语句。

  3. 用动态游标遍历,然后进行数据的处理。

代码

Oracle的静态游标与动态游标区别是什么

上面是定义和静态游标和动态游标,下面的静态游标的写法,是根据输入的开始和结束日期获取对应的当前年月

即如果输入了2018-06-01----2018-08-30

游标显示结果为

201806

201807

201808


Oracle的静态游标与动态游标区别是什么

根据输入的日期通过静态游标生成对应的动态SQL语句。vs_sSql是我们的动态字符串,把主表查询先加进来,然后根据输入的开始和结束日期找到对应的月份分割表,然后判断表是否存在,如果存在的话就用union all把分割表加入到动态SQL语句里


Oracle的静态游标与动态游标区别是什么

通过动态sql语句使用动态游标遍历销售进行数据的更新。

“Oracle的静态游标与动态游标区别是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


本文标题:Oracle的静态游标与动态游标区别是什么
当前地址:http://scyanting.com/article/pipeci.html