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,异常处理,sqlcode,sqlstate
使用 OUTPUT 游标参数
设置波形图的游标,设置游标参数,设置多个游标,可自由拖动。
Oracle.DataAccess.dll ... Oracle.ManagedDataAccess.dll ...两者均可定义Oracle存过游标参数 OracleParameter ps_listcsr = new OracleParameter(); ps_listcsr.OracleDbType = OracleDbType.RefCursor;
获取波形图游标,设置游标参数,设置多个游标,可自由拖动。
用callabledStatement调用oracle存储过程实用例子(IN OUT 传参数包括游标类型)
Oracle数据库游标使用大全 Oracle数据库游标使用大全Oracle数据库游标使用大全
for要点.sql for游标.sql 带参数游标.sql 动态游标.sql 动态游标1.sql 更新数据游标.sql 显性.sql 隐性.sql
C#winform调用带输出游标和其它输出参数的oralce存储过程示例,有需要的网友可参考参考,实测通过
包括触发器、序列、游标参数 游标、转出过程参数、游标的rowcount用法 用游标修改数据 用for使用游标、视图、存储过程、隐式游标、过程等
1、辛苦积累的课件 2、自己调试总结的代码:包括存储过程基础,异常,自定义函数,存储过程,带游标参数的存储过程,java调用存储过程返回多行记录
4. 电机设计参数优化:电机设计参数的优化是永磁游标电机设计的重要步骤,包括对内、外定子调磁齿周向宽度、径向高度及极弧系数等结构参数的优化研究。 5. 二维有限元模型:二维有限元模型是对电机电磁性能进行仿真...
oracle游标溢出调优着眼点枚举。通过对相关数据字典和参数的分析,给出建议。
okcnw内容提要:本文将讲述数据库的四个重要概念:事物、游标、存储过程以及触发器。主要内容包括事务的概念及函数...存储过程是保存起来的可以接受和返回用户提供的参数的SQL语句的集合。触发器是一种特殊的存储过程,
2.对表中的数据进行增、删、改的时候,索引也要动态的维护,这就降低了整数的维护速度。 (7)索引的建立原则 1.主外键 2.经常被查询的列 3.用于连接的字段 4.排序分组的字段 2、存储过程 (1)什么是存储过程? ...
测试表 level ; 代码如下:create table test.level (name varchar(20));再 insert 些数据 ; 代码 初始化 代码如下:drop procedure if exists useCursor //建立 存储过程 create 代码如下:CREATE PROCEDURE useCursor...
本例简单介绍一下游标处理的4个过程中涉及到的加锁,一致性读的问题. 显式游标处理需四个 PLSQL步骤: ... 游标参数只能为输入参数,其格式为: parameter_name [IN] datatype [{:= | DEFAULT} expre
有俩种方法: 一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为 in out 或out (1)声明个人系统游标.(推荐) 代码如下: create or replace p_temp_procedure ( cur_arg out sys_refcursor;...