`
kb5706
  • 浏览: 41546 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

参数游标&动态游标

 
阅读更多

Oracle带参数游标

例子

DECLARE

dept_code emp.deptno%TYPE; --声明列类型变量三个

emp_codeemp.empno%TYPE;

emp_nameemp.ename%TYPE;

CURSOR emp_cur(deptparam NUMBER) IS

SELECT empno, ename FROM EMP WHERE deptno = deptparam; --声明显示游标

BEGIN

dept_code := &部门编号; --请用户输入想查看的部门编号

OPEN emp_cur(dept_code); --打开游标

LOOP

--死循环

FETCH emp_cur

INTO emp_code, emp_name; --提取游标值赋给上面声明的变量

EXIT WHEN emp_cur%NOTFOUND; --如果游标里没有数据则退出循环

DBMS_OUTPUT.PUT_LINE(emp_code || '' || emp_name); --输出查询

END LOOP;

CLOSE emp_cur; --关闭游标

END;

Oracle引用游标

ACCEPT tab FROMPT '你想查看什么信息?员工(E)或部门信息(D):'; --使用ACCEPT命令弹出对话框让用户输入数据

DECLARE

TYPE refcur_t IS REF CURSOR;--声明REF游标类型

refcurrefcur_t; --声明REF游标类型的变量

pidNUMBER;

p_nameVARCHAR2(100);

selection VARCHAR2(1) := UPPER(SUBSTR('&tab', 1, 1)); --截取用户输入的字符串并转换为大写

BEGIN

IF selection = 'E' THEN

--如果输入的是'E',则打开refcurr游标,并将员工表查询出来赋值给此游标

OPENrefcurFOR

SELECT EMPNO ID, ENAME NAME FROM EMP;

DBMS_OUTPUT.PUT_LINE('=====员工信息=====');

ELSIF selection = 'D' THEN

--如果输入是'D',则打开部门表

OPEN refcur FOR

SELECT deptno id, dname name FROM DEPT;

DBMS_OUTPUT.PUT_LINE('=====部门信息======');

ELSE

--否则返回结束

DBMS_OUTPUT.PUT_LINE('请输入员工信息(E)或部门信息(D)');

RETURN;

END IF;

FETCH refcur

INTO pid, p_name; --提取行

WHILE refcur%FOUND LOOP

DBMS_OUTPUT.PUT_LINE('#' || pid || ':' || p_name);

FETCH refcur

INTO pid, p_name;

END LOOP;

CLOSE refcur; --关闭游标

END;

Oracle动态游标

VARIABLE maxsal NUMBER; --声明变量

EXECUTE :maxsal := 2500; --执行引用并给变量赋值

DECLARE

r_emp EMP%ROWTYPE; --声明一个行类型变量

TYPE c_type IS REF CURSOR; --声明REF游标类型

curc_type; --声明REF游标类型的变量

p_salary NUMBER; --声明一个标量变量

BEGIN

p_salary := :maxsal; --引用变量

--使用USING语句将引用到的值传给动态SQL语句'SAL >: 1'中的'1'

OPENcurFOR'SELECT * FROM EMP WHERE SAL >: 1ORDER BY SAL DESC'

USINGp_salary;

DBMS_OUTPUT.PUT_LINE('薪水大于' || p_salary || '的员工有:');

LOOP

FETCH cur

INTO r_emp;

EXIT WHEN cur%NOTFOUND;

DBMS_OUTPUT.PUT_LINE('编号:' || r_emp.empno || '姓名:' || r_emp.ename ||

'薪水:' || r_emp.sal);

END LOOP;

CLOSE cur; --关闭游标

END;

分享到:
评论

相关推荐

    DB2游标及动态SQL

    DB2游标及动态SQL,异常处理,sqlcode,sqlstate

    使用 OUTPUT 游标参数

    使用 OUTPUT 游标参数

    波形图游标功能_获取游标_

    设置波形图的游标,设置游标参数,设置多个游标,可自由拖动。

    OracleDataAccess游标参数.rar

    Oracle.DataAccess.dll ... Oracle.ManagedDataAccess.dll ...两者均可定义Oracle存过游标参数 OracleParameter ps_listcsr = new OracleParameter(); ps_listcsr.OracleDbType = OracleDbType.RefCursor;

    获取多个游标的坐标8.2_labview获取游标_

    获取波形图游标,设置游标参数,设置多个游标,可自由拖动。

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传游标)

    用callabledStatement调用oracle存储过程实用例子(IN OUT 传参数包括游标类型)

    Oracle数据库游标使用大全

    Oracle数据库游标使用大全 Oracle数据库游标使用大全Oracle数据库游标使用大全

    oracle 游标

    for要点.sql for游标.sql 带参数游标.sql 动态游标.sql 动态游标1.sql 更新数据游标.sql 显性.sql 隐性.sql

    C#调用带游标的oralce存储过程

    C#winform调用带输出游标和其它输出参数的oralce存储过程示例,有需要的网友可参考参考,实测通过

    oracle 示例代码

    包括触发器、序列、游标参数 游标、转出过程参数、游标的rowcount用法 用游标修改数据 用for使用游标、视图、存储过程、隐式游标、过程等

    游标参数的存储过程 存储过程高级教程

    1、辛苦积累的课件 2、自己调试总结的代码:包括存储过程基础,异常,自定义函数,存储过程,带游标参数的存储过程,java调用存储过程返回多行记录

    电动汽车用永磁游标电机的设计与研究.pdf

    4. 电机设计参数优化:电机设计参数的优化是永磁游标电机设计的重要步骤,包括对内、外定子调磁齿周向宽度、径向高度及极弧系数等结构参数的优化研究。 5. 二维有限元模型:二维有限元模型是对电机电磁性能进行仿真...

    oracle游标溢出调优

    oracle游标溢出调优着眼点枚举。通过对相关数据字典和参数的分析,给出建议。

    SQL+Server的事务、游标、存储过程及触发器.doc

    okcnw内容提要:本文将讲述数据库的四个重要概念:事物、游标、存储过程以及触发器。主要内容包括事务的概念及函数...存储过程是保存起来的可以接受和返回用户提供的参数的SQL语句的集合。触发器是一种特殊的存储过程,

    sql总结.doc

    2.对表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度。 (7)索引的建立原则 1.主外键 2.经常被查询的列 3.用于连接的字段 4.排序分组的字段 2、存储过程 (1)什么是存储过程? ...

    基于MySQL游标的具体使用详解

    测试表 level ; 代码如下:create table test.level (name varchar(20));再 insert 些数据 ; 代码 初始化 代码如下:drop procedure if exists useCursor //建立 存储过程 create 代码如下:CREATE PROCEDURE useCursor...

    PLSQL中显示游标使用的4个步骤

    本例简单介绍一下游标处理的4个过程中涉及到的加锁,一致性读的问题.  显式游标处理需四个 PLSQL步骤: ...  游标参数只能为输入参数,其格式为:  parameter_name [IN] datatype [{:= | DEFAULT} expre

    Oracle存储过程返回游标实例详解

    有俩种方法: 一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为 in out 或out (1)声明个人系统游标.(推荐) 代码如下: create or replace p_temp_procedure ( cur_arg out sys_refcursor;...

Global site tag (gtag.js) - Google Analytics