PLSQL_标准游标类型的解析(概念)

2014-06-02
BaoXinjian

一、汇总

1. 显示游标

2. 隐身游标

3. 动态游标REF Cursor

4. 游标的四属性

 

二、分步解析

1. 显示游标

游标从declare、open、fetch、close是一个完整的生命旅程

DECLARE

CURSOR get_wip_cur (c_wip_entity_name IN VARCHAR2)

IS

SELECT wip_entity_name

FROM wip_entities

WHERE wip_entity_name = c_wip_entity_name ;

v_wipentity_name  
wip_entities .wip_entity_name% TYPE;

BEGIN

OPEN get_wip_cur (‘W19‘);

LOOP

FETCH get_wip_cur INTO v_wipentity_name ;

EXIT WHEN get_wip_cur% NOTFOUND;

DBMS_OUTPUT.put_line (v_wipentity_name );

END LOOP;

CLOSE get_wip_cur ;

END;

2. 隐身游标

隐式cursor当然是相对于显式而言的,就是没有明确的cursor的declare

BEGIN

UPDATE wip_entities

SET wip_entity_name = ‘WIP_ENTITY_001‘

WHERE wip_entity_name LIKE ‘BXJ%‘;

IF SQL%ROWCOUNT = 0

THEN

DBMS_OUTPUT.put_line (‘NO
Lines‘ );

END IF;

END;

3. 动态游标REF Cursor

属于动态cursor(直到运行时才知道这条查询)

DECLARE

TYPE RefCur_WIP IS REF CURSOR

RETURN wip_entities% ROWTYPE;

vRefCur_WIP   RefCur_WIP ;

vTemp_WIP    
vRefCur_WIP% ROWTYPE;

BEGIN

OPEN vRefCur_WIP FOR

SELECT *

FROM wip_entities

WHERE created_by = 0;

LOOP

FETCH vRefCur_WIP INTO vTemp_WIP ;

EXIT WHEN vRefCur_WIP% NOTFOUND;

END LOOP;

CLOSE vRefCur_WIP ;

END;

4. 游标的四属性

%FOUND
%NOTFOUND
%ISOPEN
%ROWCOUNT

Thanks and Regards

PLSQL_标准游标类型的解析(概念),布布扣,bubuko.com

时间: 2024-10-11 22:24:56

PLSQL_标准游标类型的解析(概念)的相关文章

PLSQL_数据结构类型的解析(概念)

2014-06-02 BaoXinjian 一.总论 1. 字段 2. 记录 3. 集合 4. 游标 5. 其他 二.具体分析 1. 字段 (1). 标准字段 l_wip_entity_id NUMBER; (2). 基于表字段 l_wip_entity_id wip_entities.wip_entity_id%TYPE; 2. 记录 (1). 标准记录 TYPE r_type_wip_entity ISRECORD( wip_entity_id wip_entities.wip_entity

PLSQL_标准删除的方式Delete/Drop/Truncate区别和比较(概念)

2014-06-02 BaoXinjian 一.总论 1. Delete 2. Drop 3. Truncate 4. 例子:一亿条数据中如何删除其中的不符合条件的9999万条,保留剩余部分 二.具体分析 1. Delete / Drop / Truncate 删除方式的区别 (1).删除数据及表定义 truncate和 delete只删除数据不删除表的结构(定义)          drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依

C++ Primer 学习笔记_7_标准库类型(续1) -- vector类型

 标准库类型(二) --vector类型 引子: vector是同一种类型的对象的集合,每个对象都有一个对应的整数索引值.和string对象一样,标准库将负责管理与存储元素相关的内存. 我们将vector称之为容器,一个容器中的所有对象都必须是同一类型的! [cpp] view plaincopyprint? #include <vector> using std::vector; #include <vector> using std::vector; [模板] vector

flag 是Go 标准库提供的解析命令行参数的包QANDA.REN文库

flag flag 是Go 标准库提供的解析命令行参数的包. 使用方式: flag.Type(name, defValue, usage) 其中Type为String, Int, Bool等:并返回一个相应类型的指针. flag.TypeVar(&flagvar, name, defValue, usage) 将flag绑定到一个变量上. 自定义flag 只要实现flag.Value接口即可: type Value interface { String() string Set(string)

C++ Primer 第四版读书笔记(二)之标准库类型

C++定义了一个内容丰富的抽象数据类型标准库,其中最重要的标准库类型是string和vector,它们分别定义了大小可变的字符串和集合.string和vector往往将迭代器用作配套类型,用于访问string中的字符,或者vector中的元素. 另一种标准库类型为bitset,提供了一种抽象方法来操作位的集合. string类型支持长度可变的字符串,vector用于保存一组指定类型的对象. bitset类标准库类型提供了更方便和合理有效的语言级的抽象设施.通过这个类可以把某个值当作位的集合来处理

【美妙的Python之四】标准变量类型-数字与字符串

美妙的Python之Python标准变量类型 简而言之: Python 是能你无限惊喜的语言,与众不同.         1.数字:        Python支持四种数字变量类型: int(有符号整形) long(长整形) float(浮点型) complex(复数)        数字变量用于存储数值,数字对象是不可改变对象,因此改变数字变量的值会分配一个新的对象.       如下示意图:          变量相当于便签,a=3则相当于将a便签贴到值为3的数字对象上,这样便可以通过便签a

SAP ABAP之第一,二,三代出口类型BADI实现 概念解释

BADI是用户的第三代出口类型,我们来看看其具体的是如何实现的. 一,用户出口的类型 1,第一代 sap提供一个空代码的子过程,在这个子过程中用户可以添加自己的代码,控制自己的需求.这类增强都需要修改sap的标准代码.示例:USEREXIT.. in SAPMV45A 2,第二代 sap提供的是CUSTOMER-FUNCTION,它是通过SMOD和CMOD完成实现. 3,第三代 sap提供的第三代的用户出口就是BADI,他的调用方式是CALL METHOD (instance),(相关的TCOD

C++(3)标准库类型

标准库类型(一)--命名空间using与string类型 引: 标准库类型是语言组成部分中更基本的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:因为其中反映了更复杂的概念: 2.抽象:因为我们在使用时不需要关心他们是如何表示的,我们只需要知道这些抽象数据类型支持哪些操作就可以了. 正文: 一.命名空间的using声明 1. using std::cin; ::运算符的作用含义是右操作数的名字可以在左操作数的作用域中找到. 格式: [cpp] view

C++ Primer 学习笔记_6_标准库类型 -- 命名空间using与string类型

 标准库类型(一) --命名空间using与string类型 引: 标准库类型是语言组成部分中更基本的哪些数据类型(如:数组.指针)的抽象! C++标准库定义的是高级的抽象数据类型: 1.高级:因为其中反映了更复杂的概念: 2.抽象:因为我们在使用时不需要关心他们是如何表示的,我们只需要知道这些抽象数据类型支持哪些操作就可以了. 正文: 一.命名空间的using声明 1. using std::cin; ::运算符的作用含义是右操作数的名字可以在左操作数的作用域中找到. 格式: [cpp]