oracle中通过游标实现查询
1.通过提取数据
declare
v_result sys_refcursor;
v_id int;
v_name varchar2(20);
begin
open v_result for select empno,ename from emp;
loop
fetch v_result into v_id,v_name;
exit when v_result%notfound;
dbms_output.put_line('列id的值:'||to_char(v_id));
dbms_output.put_line('列name的值:'||v_name);
end loop;
close v_result;
exception
when others then
dbms_output.put_line(sqlerrm);
end;
2.通过for循环
DECLARE
CURSOR emp_cursor IS
SELECT empno, ename FROM emp;
BEGIN
FOR Emp_record IN emp_cursor LOOP
DBMS_OUTPUT.PUT_LINE(Emp_record.empno|| Emp_record.ename);
END LOOP;
END;
3.另一种形式的for循环
BEGIN
FOR re IN (SELECT ename FROM EMP) LOOP
DBMS_OUTPUT.PUT_LINE(re.ename)
END LOOP;
END;
4.游标的属性
- %ROWCOUNT 整型 获得FETCH语句返回的数据行数
- %FOUND 布尔型 最近的FETCH语句返回一行数据则为真,否则为假
- %NOTFOUND 布尔型 与%FOUND属性返回值相反
- %ISOPEN 布尔型 游标已经打开时值为真,否则为假
declare
names varchar2(20);
cursor emp_cursor is
select ename from emp;
begin
open emp_cursor;
if emp_cursor%isopen then
loop
fetch emp_cursor into names;
exit when emp_cursor%notfound;
DBMS_OUTPUT.PUT_LINE(emp_cursor%ROWCOUNT||names);
end loop;
else
DBMS_OUTPUT.PUT_LINE('没有相关信息');
end if;
close emp_cursor;
end;
5.带参数的游标
DECLARE
V_empno NUMBER(5);
V_ename VARCHAR2(10);
CURSOR emp_cursor(p_deptno NUMBER, p_job VARCHAR2) IS
SELECT empno, ename FROM emp
WHERE deptno = p_deptno AND job = p_job;
BEGIN
OPEN emp_cursor(10, 'CLERK');
LOOP
FETCH emp_cursor INTO v_empno,v_ename;
EXIT WHEN emp_cursor%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_empno||','||v_ename);
END LOOP;
END;
转载于:https://www.cnblogs.com/yuloe2012/archive/2012/12/11/2812947.html
oracle中通过游标实现查询相关推荐
- 在oracle中游标的操作,Oracle中的游标和函数详解
Oracle中的游标和函数详解 1.游标 游标是一种 PL/SQL 控制结构:可以对 SQL 语句的处理进行显示控制,便于对表的行数据 逐条进行处理. 游标并不是一个数据库对象,只是存留在内存中. 操 ...
- 查询oracle中用户的角色,oracle中用户角色的查询和授权
用户拥有的系统权限 select privilege from dba_sys_privs where grantee='&USERNAME' union select privile ...
- ORACLE中使用SQL语句查询所有员工的职位信息,并用DISTINCT消除重复信息。
ORACLE中使用SQL语句查询所有员工的职位信息,并用DISTINCT消除重复信息. 在sqlplus中执行下面语句: select job from emp: 显示结果如下: SQL> se ...
- oracle中创建游标,oracle 存储过程创建游标
Oracle与Sql Server差异点详解 1.create函数或存储过程异同点 Oracle 创建函数或存储过程一般是 create or replace -- SQL SERVER 则是在创建之 ...
- Oracle中cursor(游标)总结
1. 游标: 容器,存储SQL语句影响行数. 2. 游标类型: 隐式游标,显示游标,REF游标.其中,隐式游标和显示游标属于静态游标(运行前将游标与SQL语句关联),REF游标 ...
- day02: SQL_DML, oracle中sql的各种查询
1.oraclesql的特性 pLsql显示: 修改显示的格式 SQL> set pagesize 300; SQL> set linesize 300; SQL> select e ...
- 在Oracle中如何让SELECT查询绕过UNDO
是否有想过如何在Oracle中实现脏读(dirty read),在Oracle官方文档或者Asktom的时候显然会提到Oracle是不实现脏读的, 总是有undo来提供数据块的前镜像(before i ...
- ArcGIS——数据库空间SQL(一、oracle中使用sql空间查询及st_astext等函数出错问题)
一.引言 将shp文件导入oracle中就想着直接用sql进行普通查询和空间查询,这样直接通过webserver发布就可以不用arcgis server直接进行接口调用了,感觉这样比较接触底层些,所以 ...
- Oracle中Timestamp类型字段查询结果格式化处理
在使用Oracle数据库时,把Timestamp类型的字段查出来显示到界面上居然是一串数字,不符合我们常见的要求,我就查了一下,发现中间还有很多道道,Oracle查出来的Timestamp类型和jav ...
最新文章
- YOLOV3+window10+cuda8.0+cudnn6.0安装过程
- 撰写英文SCI文章的技巧
- [Eclipse]GEF入门系列(九、增加易用性)
- 线程池原理与自定义线程池
- leetcode 299. Bulls and Cows | 299. 猜数字游戏(Java)
- CRM软件设计评测点与采集测评点
- 1282B1. K for the Price of One (Easy Version)
- The authors of these two monitoring tools
- html中哪些属于块级标记,html行级标记和块级标记都有哪些?
- java中数字循环嵌套举例,在Java程序中,复杂算法可以通过循环语句和的相互嵌套来实现。...
- java初级开发面试题
- 使用S32DS集成MCAL
- 机电工程学院互联网+特色专业17级顶岗实习欢送会​圆满落幕
- 计算机表格排版,你必须要知道的excel排版技巧
- UE4 Spline
- 利用大智慧DDE数据生成每只股票的历史数据文件(SQLServer2005)
- 这特么也太好看了----------博客园主题美化
- 安装和使用Linux花生壳(公网版)
- 凯悦旗下中高端酒店品牌逸扉在上海亮相
- Java计算机IT编程文档常见单词翻译