--在一中我们介绍了实现过程
select *from stud;
declare
cursor mycur is select id,name from stud;--1声明
v_id integer;
v_name varchar(30);
begin
open mycur;--2打开游标
loop--3遍历
fetch mycur into v_id,v_name;
exit when mycur%notfound;--找不到数据退出
--显示数据
DBMS_OUTPUT.PUT_LINE('编号'||v_id||'姓名'||v_name);
end loop;
if mycur%isopen then --5确定关闭
DBMS_OUTPUT.PUT_LINE('正常关闭');
close mycur;
else
SYS.DBMS_OUTPUT.PUT_LINE('已经关闭');
end if;
exception --4关闭
when others then
SYS.DBMS_OUTPUT.PUT_LINE('异常关闭');
close mycur;
end; --记录集类型 declare
--声明游标
cursor cur is select * from stud;
--声明记录集类型
res_stud stud%rowType;
begin
--打开游标
open cur;
--遍历
loop
--直接将每一次获取的值,放到记录集中去
fetch cur into res_stud;
exit when cur%notfound;
--输出
dbms_output.put_line('id '||res_stud.id||' name is:'||res_stud.name);
end loop;
close cur;
end;
------------------------------
--直接使用 for in
--不用打开
DECLARE
CURSOR mycur1 is select * from stud;
begin
for vv in mycur1 loop
SYS.DBMS_OUTPUT.PUT_LINE('编号'||vv.id||''||'姓名'||vv.name);
end loop;
end;
--隐式 begin
for vv in (select * from stud) loop
SYS.DBMS_OUTPUT.PUT_LINE('编号'||vv.id||''||'姓名'||vv.name);
end loop;
end; ----接受参数的游标
/*
1,工具接受
...where id=&id;
2。在游标申明时给定参数
在plsql块中使用
3。在procedure过程中使用游标 */ --2
accept iid prompt '输入id值';
declare
cursor mycur2(p_id integer)is select * from stud where id>p_id;
v_stud stud%rowType;
begin
open mycur2(&iid);
loop
fetch mycur2 into v_stud;
exit when mycur2%notfound;
DBMS_OUTPUT.PUT_LINE(v_stud.id||''||v_stud.name);
end loop;
close mycur2;
end; --3过程中使用
--声明一个接收参数的游标
--一个要求,sql语句是动态的 create or replace procedure px1(px_id integer)
as
cursor cc(p_id integer) is select * from stud where id>p_id;
v_stud stud%rowType;
begin
--自己显式的打开,在这儿可以接收参数
open cc(px_id);
loop
fetch cc into v_stud;
exit when cc%notfound;
dbms_output.put_line(v_stud.id||v_stud.name);
end loop;
close cc;
end;
--调用
set serveroutput on;
begin
px1(4);
end;
-----------------------------------------------------------------------------
--删除用户创建的所有表-----------慎用仅作讲解
--声明一个过程
set serveroutput on;
create or replace procedure dropall
as
--声明一个cursor,查询用户的所有表
cursor cur is select table_name from user_tables;
--声明一个变量保存表名
v_tabname user_tables.table_name%type;
begin
open cur;
loop
fetch cur into v_tabname;
exit when cur%notfound;
dbms_output.put_line(v_tabname);
--组成sql--在sql块中,是不可以执行DDL
execute immediate 'drop table '||v_tabname||' purge';
end loop;
close cur;
end; create table studsss(id int);
drop table stud purge;
select * from tab;
purge recyclebin; select * from dba_users; begin
dropall();
end;

Oracle游标cursor2显示的游标等的更多相关文章

  1. 简单了解一下oracle中的显示游标和存储过程

    游标 游标主要分两类动态和静态游标,静态游标是编译时知道明确的select语句的游标,静态游标分类两种,显示游标和静态游标,这里只说显示游标 显示游标 declare name emp.ename%t ...

  2. Oracle数据库之PL/SQL游标

    1. 游标概念 字面意思是游动的光标,是指向上下文区域的句柄或指针. 在PL/SQL块中执行CRUD操作时,ORACLE会在内存中为其分配上下文区.用数据库语言来描述游标就是:映射在上下文区结果集中一 ...

  3. 【Oracle】PL/SQL 显式游标、隐式游标、动态游标

    在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...

  4. Oracle 11g 新特性 -- 自适应游标共享(Adaptive Cursor Sharing: ACS) 说明(转载)

    一.自适应游标共享(Adaptive Cursor Sharing) 说明 1.1 ACS概述绑定变量使Oracle DB 可以为多条SQL 语句共享单个游标,以减少分析SQL 语句所使用的共享内存量 ...

  5. oracle中表空间管理,游标

    一.表空间 oracle使用表空间来管理数据库的对象(表,序列,过程,函数,游标等). oracle的逻辑结构(看不见的):oracle数据库 => 表空间 => 表 序列  过程等对象. ...

  6. oracle 视图的创建,游标,left join

    视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CO ...

  7. Mybatis下配置调用Oracle自定义函数返回的游标结果集

    在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...

  8. Oracle与Mysql内嵌游标的使用示例

    Oracle 游标用For循环比较简单,Mysql也是最近才开始用,感觉稍微麻烦一点,下边直接上代码: ------------------------------------------------ ...

  9. Oracle学习(七)游标

    一.简介 定义 实质上是数据集,类似数组一样,把查询的数据集存储在内存当中. 使用时可以通过游标指向其中一条记录,也可以通过循环游标达到循环数据集的目的. 游标的种类 显式游标: 使用之前必须得先声明 ...

随机推荐

  1. Swift - IBOutlet返回nil(fatal error: unexpectedly found nil while unwrapping an Optional value)

    在Swift 中 ViewController 默认构造方法不关联同名的xib文件 在使用OC的时候,调用ViewController的默认构造函数,会自动关联到一个与ViewController名字 ...

  2. Enumeration

    Interface Enumeration<E> hasMoreElements() boolean hasMoreElements()    仅当此枚举对象包含至少一个以上元素为真:否则 ...

  3. Go语言之异常处理

    在编写Go语言代码的时候,我们应该习惯使用error类型值来表明非正常的状态.作为惯用法,在Go语言标准库代码包中的很多函数和方法也会以返回error类型值来表明错误状态及其详细信息. error是一 ...

  4. [python]百度语音rest api

    百度语音识别提供的api范例只有java, c, php. 如果使用Python, 需要注意: 语音文件长度是指bytes大小 可以通过len(file.read())获得 使用requests.po ...

  5. storyboard和xib的区别

    storyboard只是算是帮你布局,流程什么的,xib的另一种形势,比xib功能多,但是和分享完全没有半点关系 你暂时可以理解为高级xib

  6. iOS 拨打电话三种方式总结

    1,这种方法,拨打完电话回不到原来的应用,会停留在通讯录里,而且是直接拨打,不弹出提示NSMutableString * str=[[NSMutableString alloc] initWithFo ...

  7. ububtu 彻底卸载程序的几种方法

    sudo apt-get purge ......(点点为为程序名称) sudo apt-get autoremove sudo apt-get clean dpkg -l |grep ^rc|awk ...

  8. photoshop sdk

    http://blogs.adobe.com/photoshop/2013/09/introducing-adobe-generator-for-photoshop-cc.html

  9. PHP 面向对象中常见关键字使用(final、static、const和instanceof)

    PHP 面向对象中常见关键字的使用: 1.final :final关键字可以加在类或者类中方法之前,但是不能使用final标识成员属性. 作用: 使用final标识的类,不能被继承. 在类中使用fin ...

  10. WPF - Build Error总结

    1. are you missing an assembly reference 给项目添加新控件的时候,经常发现这种错误 Error 21 The type or namespace name 'C ...