oracle open for using的用法,oracle OPEN FOR [USING] 语句
目的:
和ref cursor配合使用, 可以将游标变量分配给不同的SQL (而不是在declare中把游标给定死), 增加处理游标的灵活性
语法:
declare
type type_cursor is ref cursor [return 记录类型]; --使用 ref cursor 才能把游标分配给不同的SQL,return不能用在动态SQL中
v_cursor type_cursor ;
begin
OPEN v_cursor FOR select first_name, last_name from student;
OPEN v_cursor FOR ' select first_name,last_name from student where zip = :1 '
USING 绑定变量1;
open
静态SQL
cursor
cursor c1 is
open c1; fetch ... into ... ; close c1;
open for
静态SQL
ref cursor
type t_1 is ref cursor;
c2 t_1 ;
openc2 for;
open for using
动态SQL
type t_1 is ref cursor;
c2 t_1 ;
openc2 for using ... ;
例子1:
declare
type student_cur_type is ref CURSOR RETURN test_stu%ROWTYPE; --声明ref cursor类型, return类型固定
v_first_name test_stu.first_name%TYPE;
v_last_name test_stu.last_name%TYPE;
cur_stud student_cur_type;
begin
open cur_stud for select first_name,last_name from student ; --带return的ref cursor只能用在静态sql中
loop
fetch cur_stud into v_first_name, v_last_name;
exit when cur_stud%NOTFOUND;
dbms_output.put_line(v_first_name || ' ' || v_last_name);
end loop;
close cur_stud;
end;
例子2:
declare
v_zip varchar2(5) := '&sv_zip';
v_first_name varchar2(25);
v_last_name varchar2(25);
type student_cur_type is ref cursor; --声明ref cursor类型
student_cur student_cur_type; --student_cur是游标变量 / student_cur_type 是引用游标类型
begin
--2打开游标变量,让它指向一个动态select查询的结果集 ; 就是使用open for语句代替一般的open语句代开游标
open student_cur for 'select first_name,last_name ' from student where zip = :1'
using v_zip;
loop
fetch student_cur into v_first_name, v_last_name;
exit when student_cur%NOTFOUND;
dbms_output.put_line(v_first_name || ' ' || v_last_name);
end loop;
close student_cur;
end;
转载自:https://blog.csdn.net/crzzyracing/article/details/75336196
oracle open for using的用法,oracle OPEN FOR [USING] 语句相关推荐
- oracle中的with的用法,oracle with 话语的用法
oracle with 语句的用法 在oracle中,select 查询语句,可以使用with,就是一个子查询,oracle 会把子查询的结果放到临时表中,可以反复使用 例子:注意,这是sql语句,不 ...
- oracle中的with的用法,oracle中with子句的用法(转)
语法: WITH query_name AS (subquery) [, query_name AS (subquery) ]... 使用在主select关键字前,oracle将其当做一个内联视图或者 ...
- oracle的sql的substr用法,oracle中substr函数的用法(sqlserver right)
oracle: 语法: substr(string,a,b): a:从第几位开始,第一位a=1,倒数第三位(即sqlserver中的right)a=-3 b:取几个字符 substr('This is ...
- oracle中的to_number,Oracle中to_number()函数的用法
to_number()函数是oracle中常用的类型转换函数之一,是将一些处理过的按一定格式编排过的字符串变回数值型的格式. 1.to_number()函数可以将char或varchar2类型的str ...
- oracle中rollback用法,Oracle中SAVEPOINT和ROLLBACK用法
savepoint是事务内部允许部分rollback的标志符.因为事务中对记录做了修改,我们可以在事务中创建savepoint来标识不同的点.如果遇到错误,就可以rollback到不同的点或直接回来事 ...
- oracle求和分组排序,oracle中分组排序函数用法 - 转
项目开发中,我们有时会碰到需要分组排序来解决问题的情况,如:1.要求取出按field1分组后,并在每组中按照field2排序:2.亦或更加要求取出1中已经分组排序好的前多少行的数据 这里通过一张表的示 ...
- partition oracle用法,Oracle partition by 使用说明
--用法详解 0.select * from wmg_test; ---测试数据 1.select v1,v2,sum(v2) over(order by v2) as sum --按 ...
- oracle中的merge into用法解析
oracle中的merge into用法解析 merge into的形式 MERGE INTO [target-table] A USING [source-table sql] B ON([cond ...
- oracle中over()分析函数的用法
摘自: http://www.poluoluo.com/jzxy/201004/81921.html 百度文库也记载了oracle中over()分析函数的用法 在泡坛子的时候中无意中发现了这个函数,才 ...
最新文章
- [转]Oracle 服务器名配置
- 数据结构实验之栈七:出栈序列判定
- Java定时任务调度工具详解之Timer篇
- 精化集ASP.NET AJAX与ASP.NET MVC分类第二轮筛选结果
- php函数收集参数,DELL 14G服务器 对应 金牌银牌铜牌铂金CPU 参数简单汇总
- gtest 学习之五 测试用例中定义类
- Vue实例和生命周期 1
- Catboost:超越Lightgbm和XGBoost的又一个boost算法神器
- ios 性能优化之图形性能测试
- Gson解析数组和list容器
- listary的使用教程
- 勒索病毒解密工具的汇总
- android 不透明度
- Excel辅助“校验”
- JavaScript复制内容到剪贴板 1
- ESlint语法检测工具
- JSP+Servlet实现BMI计算器
- 出了山寨机,国产的就没法活了?
- Python实现FFT及IFFT
- 计算机存放程序和数据的设备是什么,计算机中用来存放程序和数据的部件是什么...
热门文章
- SpringMVC 实例应用 -- 不同方式控制器实现与参数传递
- C++类与对象概念详解
- Qt调用动态链接库ControlCAN.dll实例
- Qt-调用dll动态链接库
- C++模拟键盘操作窗口入门
- python数据类型特点_Python 基础数据类型
- 程序员基本功08异常捕捉的陷阱
- c语言中strcmp作用,C语言中strcmp的实现原型
- 计算机毕业设计制作模仿网站的期末作业通过神器——各种扒站方法(网站,软件)
- f12控制台如何查看consul_基于 Consul 的 Go Micro 客户端服务发现是如何实现的