Oracle游标cursor2显示的游标等
--在一中我们介绍了实现过程
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显示的游标等的更多相关文章
- 简单了解一下oracle中的显示游标和存储过程
游标 游标主要分两类动态和静态游标,静态游标是编译时知道明确的select语句的游标,静态游标分类两种,显示游标和静态游标,这里只说显示游标 显示游标 declare name emp.ename%t ...
- Oracle数据库之PL/SQL游标
1. 游标概念 字面意思是游动的光标,是指向上下文区域的句柄或指针. 在PL/SQL块中执行CRUD操作时,ORACLE会在内存中为其分配上下文区.用数据库语言来描述游标就是:映射在上下文区结果集中一 ...
- 【Oracle】PL/SQL 显式游标、隐式游标、动态游标
在PL/SQL块中执行SELECT.INSERT.DELETE和UPDATE语句时,Oracle会在内存中为其分配上下文区(Context Area),即缓冲区.游标是指向该区的一个指针,或是命名一个 ...
- Oracle 11g 新特性 -- 自适应游标共享(Adaptive Cursor Sharing: ACS) 说明(转载)
一.自适应游标共享(Adaptive Cursor Sharing) 说明 1.1 ACS概述绑定变量使Oracle DB 可以为多条SQL 语句共享单个游标,以减少分析SQL 语句所使用的共享内存量 ...
- oracle中表空间管理,游标
一.表空间 oracle使用表空间来管理数据库的对象(表,序列,过程,函数,游标等). oracle的逻辑结构(看不见的):oracle数据库 => 表空间 => 表 序列 过程等对象. ...
- oracle 视图的创建,游标,left join
视图的创建: create or replace view dmv_mat_contract_stock_in_bill as select csib.*, sib.STOCK_IO_, sib.CO ...
- Mybatis下配置调用Oracle自定义函数返回的游标结果集
在ibatis和Mybatis对存储过程和函数函数的调用的配置Xml是不一样的,以下是针对Mybatis 3.2的环境进行操作的. 第一步配置Mapper的xml内容 <mapper names ...
- Oracle与Mysql内嵌游标的使用示例
Oracle 游标用For循环比较简单,Mysql也是最近才开始用,感觉稍微麻烦一点,下边直接上代码: ------------------------------------------------ ...
- Oracle学习(七)游标
一.简介 定义 实质上是数据集,类似数组一样,把查询的数据集存储在内存当中. 使用时可以通过游标指向其中一条记录,也可以通过循环游标达到循环数据集的目的. 游标的种类 显式游标: 使用之前必须得先声明 ...
随机推荐
- winform 获取当前项目所在的路径
代码: string curAppPath = System.IO.Directory.GetParent(System.Environment.CurrentDirectory).Parent.Fu ...
- 在同个类中non-const插入const来减少重复
class A { private: std::string a; public: A(std::string b) :a(b){} const char& operator[](int b) ...
- 杂文:AlphaGo 与 Alan Turing
写于2016 3.8晚 AlphaGo 与 Alan Turing 如果我们可以被称为生物版本的机器人,承载着在上千年或是万年的时间内不断完善的人工智能,并正如行为主义所指出的那样,对不同的刺激做出相 ...
- uva 10222 - Decode the Mad man
#include <iostream> #include <string> #include <cctype> using namespace std; int m ...
- CSS3 Flexbox布局那些事
相信研究过CSS3的同学对Flexbox布局一定不会陌生(作为一个未来主流的布局方式,至少有所耳闻).最近完成了两个项目:一个是移动端H5项目,一个是嵌入HTML页面的mac客户端项目.为了庆祝这两个 ...
- LeetCode_Reverse Nodes in k-Group
Given a linked list, reverse the nodes of a linked list k at a time and return its modified list. If ...
- 使用ngrok让微信公众平台通过80端口访问本机
最近在做微信开发,感觉测试不怎么方便,在网上找了找一下帖子,发现了这个好工具哈,与大家一同分享一下... 原文:http://blog.csdn.net/liuxiyangyang/article/d ...
- zabbix 启用分区表后需要关闭Housekeeper
<pre name="code" class="html">Zabbix Housekeeper changes: 使用分区表需要关闭zabbix的 ...
- 【转】Android中定时器的3种实现方法
原文网址:http://www.android-study.com/pingtaikaifa/508.html 在Android开发中,定时器一般有以下3种实现方法: 一.采用Handler与线程的s ...
- Ajax--xml格式及注意事项
<?xml version='1.0' ?>//整个标签必须顶格写,version='1.0'是xml的版本号 <Info>//只能有且只有一个根作为最外层标签 <n1& ...