--在一中我们介绍了实现过程
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. JQ简单图片轮播

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 小巧实用的数字加减插件(jquery插件)

    2015-12-04 近期项目需要,我将插件更新了,增加了两个参数,一个参数控制文本框是否支持输入,另一个参数则是新增了一个回调函数,返回文本框内的值.另外对代码局部重构了,优化了一下封装,需要的朋友 ...

  3. ECharts开源图表使用方法简单介绍

    ECharts图表是基于Canvas,纯Javascript图表库,基于BSD开源协议,官网地址:http://echarts.baidu.com/index.html 需要先下载插件:https:/ ...

  4. JqueryUI插件网络连接

    operamasks_UI官网 http://ui.operamasks.org/website/homepage.html EasyUI官网 http://www.jeasyui.com/index ...

  5. 4月13日 php

    用php打印乘法表: <html> <head> <title>我的第一个PHP页面</title> </head> <body> ...

  6. php中计算中文字符串长度、截取中文字符串

    在做PHP开发的时候,由于我国的语言环境问题,所以我们常常需要对中文进行处理.在PHP中,我们都知道有专门的mb_substr和mb_strlen函数,可以对中文进行截取和计算长度,但是,由于这些函数 ...

  7. php-fpm:fastcgi_finish_request()

    开始研究php-fpm, 在php-fpm的官网上发现一些很有用的功能,记录一下 1.支持php脚本执行慢的log记录 ; The timeout for serving a single reque ...

  8. mysql日志文件相关的配置【1】

    1.log_output=[file | table | none ] 这个参数指定general_log &slow_query_log 的输出目标.可以是table | file | no ...

  9. fontresize 移动端的手机字体 大小设置

    这段js 需要置于页面上端 也就是 需要先加载js然后加载页面 (这段js是原生js而且比较短小 基本对页面加载速度无影响) FontResize : function(maxWidth){ (fun ...

  10. selenium太有爱,我已离不开!!!

    自动化测试,超有用. PROXY,PLUGIN,PROFILE,WINDOWS HANDLE个个搞定!!! from selenium import webdriver from selenium.c ...