oracle动态游标

declare

v_col1 varchar2(254);

v_col2 varchar2(254);

v_sql  varchar2(1024);

type my_cursor is ref cursor;

v_cur my_cursor;

begin

v_sql := ‘select :1,:2 from dual where 1 = :3‘;

open v_cur for v_sql

using ‘col1‘, ‘col2‘, 1;

loop

fetch v_cur

into v_col1, v_col2;

exit when v_cur%notfound;

dbms_output.put_line(v_col1 || ‘  ‘ || v_col2);

end loop;

close v_cur;

end;

显式Cursor的属性包含:

游标的属性    
 返回值类型    意义

%ROWCOUNT    
  整型   
      获得FETCH语句返回的数据行数

%FOUND       
  布尔型     
  最近的FETCH语句返回一行数据则为真,否则为假

%NOTFOUND    
  布尔型     
  与%FOUND属性返回值相反

%ISOPEN         布尔型  
     游标已经打开时值为真,否则为假

时间: 2024-08-12 16:30:09

oracle动态游标的相关文章

Oracle动态游标实现动态SQL循环遍历,和静态游标的比较。

动态游标可以遍历动态的表, 格式: TYPE 游标类型 IS REF CURSOR; --定义一个动态游标游标名 游标类型; 如果查询的表的数据不同的,动态变化的,这时候可以用动态游标. 需要注意的是,动态游标的定义, 在普通存储过程中:需要放在 is 后面的第一行. 动态游标通过:open 游标 for 字符串,形式使用,遍历. create or replace procedure P_TEST_SQL is TYPE ref_cursor_type IS REF CURSOR; --定义一

Oracle动态游标用法

最近在写一个存档的procedure时,因为条件不同,组成的SQL也不同. 1 CREATE OR REPLACE 2 PROCEDURE led_bl_issue_save_new ----大标签发料存档LED031C 3 ( 4 i_worknosid NUMBER,---工单ID 5 i_led_partno VARCHAR2,---LED料号 6 i_led_partid VARCHAR2,---LED料号ID 7 i_bincode1 VARCHAR2, ---BIN1 8 i_dat

Oracle异常处理,动态游标

小例子,方便以后查阅. 包头需要声明:   type C_CURSOR is ref cursor; procedure visitcount(in_date number, out_code out number, out_desc out varchar2 ) is t_date number(8); t_datepre number(8); t_sql varchar2(2000); t_tempcount number(8); c_data C_CURSOR; v_cityname va

oracle 隐式游标,显示游标,游标循环,动态SELECT语句和动态游标,异常处理和自定义异常

游标的概念:    游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁 盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库.这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率.游标有两种类型:显式游标和隐式游标.在前述程序中用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种 形式的查询和DML操作,系统都会使用一个隐式游标.但是如果要

『ORACLE』 PLSQL动态游标的使用(11g)

#静态游标指的是程序执行的时候不需要再去解析sql语言,对于sql语句的解析在编译的时候就可以完成的. 动态游标由于含有参数,对于sql语句的解析必须要等到参数确定的时候才能完成. 从这个角度来说,静态游标的效率也比动态游标更高一些. #游标的相关概念: 定义: 游标它是一个服务器端的存储区,这个区域提供给用户使用,在这个区域里 存储的是用户通过一个查询语句得到的结果集,用户通过控制这个游标区域当中 的指针 来提取游标中的数据,然后来进行操作. 实质: 是用户在远程客户端上对服务器内存区域的操作

Oracle基础 游标

一.游标 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区.这个区包含了已经处理完的行数.指向被分析语句的指针,整个区是查询语句返回的数据行集.游标就是指向上下文区句柄或指针. 二.游标的分类: 1.静态游标:静态游标是在编译时知道其SELECT语句的游标.静态游标又分为两种类型,隐式游标和显示游标. 2.动态游标:用户为游标使用的查询直到运行的时候才

Oracle 动态SQL语句

Oracle 动态SQL语句 (2012-06-18 16:36:12) 转载▼ 标签: oracle it   EXECUTE IMMEDIATE代替了以前Oracle8i中DBMS_SQLpackage包. 它解析并马上执行动态的SQL语句或非运行时创建的PL/SQL块.动态创建和执行SQL语句性能超前,EXECUTEIMMEDIATE的目标在于减小企业费用并获得较高的性能,较之以前它相当容易编码.尽管DBMS_SQL仍然可用,但是推荐使用EXECUTEIMMEDIATE,因为它获的收益在包

oracle中游标与动态绑定变量

一.      游标: 用数据库语言来描述:游标是映射在结果集中一行数据上的位置实体,有了游标用户就可以访问结果集中的任意一行数据了,将游标放置到某行后,即可对该行数据进行操作,例如提取当前行的数据等等. 在Oracle9i之前,使用FETCH语句每次只能提取一行数据:从Oracle9i开始,通过使用FETCH…BULK COLLECT INTO语句,每次可以提取多行数据.语法如下: (1) FETCH cursor_name INTO variable1,variable2,…: 此方法必须要

Oracle 基础 游标

一:游标的基本原理 游标用来处理从数据库中检索的多行记录(使用SELECT语句).利用游标,程序可以逐个地处理和遍历一次检索返回的整个记录集. 为了处理SQL语句,Oracle将在内存中分配一个区域,这就是上下文区.这个区包含了已经处理完的行数.指向被分析语句的指针,整个区是查询语句返回的数据行集.游标就是指向上下文区句柄或指针. 二:游标的分类 1.静态游标:在编译时知道其SELECT语句的游标. (1).显示游标 (2).隐式游标 2.动态游标:用户为游标使用的查询直到运行的时候才能确定,必