zoukankan      html  css  js  c++  java
  • 简单了解一下oracle中的显示游标和存储过程

    游标

      游标主要分两类动态和静态游标,静态游标是编译时知道明确的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;

  • 相关阅读:
    codewars sum of pairs
    codewars贪吃蛇算法题目
    记录一道有意思的js题目
    JS判断变量类型
    mock之初体验
    three.js尝试(二)模拟游戏开发:3D人物在地图上行走
    three.js尝试(一)模拟演唱会效果
    Vue中父组件使用子组件的emit事件,获取emit事件传出的值并添加父组件额外的参数进行操作
    网易前端工程师课程中,布局解决方案
    js飘窗
  • 原文地址:https://www.cnblogs.com/hfx123/p/9943066.html
Copyright © 2011-2022 走看看