zoukankan      html  css  js  c++  java
  • 数据库函数练习1

    test表数据如下:

    ikey      cname   pikey

    1           集团       0

    2           公司       1

    3           部门       2

    4           个人       3

    试写一递归函数,传入ikey值,遍历取出pikey值。运行时如传入ikey为4,则该函数遍历取出pikey值依次为3、2、1、0,最后返回0显示到前台。

    --创建表
    drop table test;
    drop sequence seq_test;
    create sequence seq_test;
    create table test(
     ikey number(5) primary key,
     cname varchar2(10),
     pikey number(3)
    );
    insert into test values(seq_test.nextval,'集团',0);
    insert into test values(seq_test.nextval,'公司',1);
    insert into test values(seq_test.nextval,'部门',2);
    insert into test values(seq_test.nextval,'个人',3);
    commit;
    select * from test;
    --函数
    create or replace function func_test(i_int in number)
    return number
    is
      result number(3);
      temp number(3);
      type ref_cursor is ref cursor;
      v_cursor ref_cursor;
    begin
      open v_cursor for 'select pikey from test where ikey<= '||i_int||'order by ikey desc';
      loop
        fetch v_cursor into temp;
        exit when v_cursor%notfound;
        dbms_output.put_line(temp);
        if(temp=0) then
          result:=temp;
          goto label1;
        end if;
      end loop;
      <<label1>>
      close v_cursor;
      return result;
      exception
        when others then 
          if(v_cursor%isopen) then
            close v_cursor;                    
          end if;
          return '';
    end;
    --测试
    declare
      v_pikey number;
    begin
      v_pikey :=func_test(4);
      dbms_output.put_line('结果值:'||v_pikey);
    end;



  • 相关阅读:
    等价表达式
    读入字符串
    n以内质数占的比例
    图论——最小生成树_prim
    搜索
    图论——最小生成树
    线段树模板
    WC总结
    三练斜率优化
    斜率优化技巧——换个角度思考
  • 原文地址:https://www.cnblogs.com/archermeng/p/7537395.html
Copyright © 2011-2022 走看看