加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

简单了解一下oracle中的显示游标和存储过程

发布时间:2020-12-12 13:41:20 所属栏目:百科 来源:网络整理
导读:游标 游标主要分两类动态和静态游标,静态游标是编译时知道明确的select语句的游标,静态游标分类两种,显示游标和静态游标,这里只说显示游标 显示游标 declare name emp.ename % type; sal emp.sal % type; -- 声明两个变量 cursor emp_currsor is -- 声明游标

游标

  游标主要分两类动态和静态游标,静态游标是编译时知道明确的select语句的游标,静态游标分类两种,显示游标和静态游标,这里只说显示游标

显示游标

declare
   name emp.ename%type;
   sal emp.sal%type;                --声明两个变量
   cursor emp_currsor is            --声明游标
          select ename,sal from emp;
begin
  open emp_currsor;                --第一步打开游标
  loop
    fetch emp_currsor into name,sal;      --fetch提取游标
    exit when emp_currsor%notfound;       --判断游标是否还有值
    dbms_output.put_line(||emp_currsor%rowcount||个雇员||name||sal);
  end loop;
  close emp_currsor;                --最后一步关闭游标
end;

?显示游标属性

%found:只有在DML语句影响一行或者多行时,%found属性才返回true

%notfound:如果没有影响任何行返回true

%rowcount:属性返回DML语句影响的行数.如果DML语句没有影响任何行,则%rowcount属性返回0

%isopen:返回游标是否已被打开

循环读取游标

declare
   cursor cu_emp is
     select * from emp;
   lr_emp cu_emp%rowtype;  --声明变量
          
begin
     for lr_emp in cu_emp
       loop
           dbms_output.put_line(empName:   || lr_emp.ename);
     end loop;           
end;

?结果:

存储过程

--创建存储过程
create or replace procedure proc_getEmpList(v_empno number,vara varchar)
is
--遍历游标
   cursor cu_emp is
     select * from emp;
   lr_emp cu_emp%rowtype;  --声明变量
          
begin
     dbms_output.put_line(v_empno:  || v_empno||vara:||vara);
     for lr_emp in cu_emp
       loop
           dbms_output.put_line(empName:   || lr_emp.ename);
     end loop;           
end;

--调用
begin
  proc_getEmpList(123,00);  
end;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读