广

oracle数据库

  • MYSQL
  • MSSQL
  • Redis
  • MongoDB
  • oracle数据库
  • 数据管理

    oracle 存储过程和函数例子

    2018-05-04 21:21:28 次阅读 稿源:互联网
    广告
    全网推广平台,软文发布
    作者:peace.zhao
    关于 游标 if,for 的例子
    create or replace procedure peace_if
    is
    cursor var_c is select * from grade;
    begin
    for temp in var_c loop
    if temp.course_name = 'OS' then
    dbms_output.put_line('Stu_name = '||temp.stu_name);
    elsif temp.course_name = 'DB' then
    dbms_output.put_line('DB');
    else
    dbms_output.put_line('feng la feng la ');
    end if;
    end loop;
    end;
    ---关于游标 for,case 的例子1
    create or replace procedure peace_case1
    is
    cursor var_c is select * from test_case;
    begin
    for temp in var_c loop
    case temp.vol
    when 1 then
    dbms_output.put_line('haha1');
    when 2 then
    dbms_output.put_line('haha2');
    when 3 then
    dbms_output.put_line('haha3');
    when 4 then
    dbms_output.put_line('haha4');
    else
    dbms_output.put_line('qita');
    end case ;
    end loop;
    end;
    ---关于游标 for,case 的例子2
    create or replace procedure peace_case2
    is
    cursor var_c is select * from test_case;
    begin
    for temp in var_c loop
    case
    when temp.vol=1 then
    dbms_output.put_line('haha1');
    when temp.vol=2 then
    dbms_output.put_line('haha2');
    when temp.vol=3 then
    dbms_output.put_line('haha3');
    when temp.vol=4 then
    dbms_output.put_line('haha4');
    else
    dbms_output.put_line('qita');
    end case ;
    end loop;
    end;
    ---关于for 循环的例子
    create or replace procedure peace_for
    is
    sum1 number :=0;
    temp varchar2(500);
    begin
    for i in 1..9 loop
    temp := '';
    for j in 1 .. i
    loop
    sum1 := i * j;
    temp := temp||to_char(i) || ' * ' ||to_char(j) ||' = ' ||to_char(sum1) ||' ';
    end loop;
    dbms_output.put_line(temp );
    end loop;
    end;
    ---关于 loop循环的例子
    create or replace procedure peace_loop
    is
    sum1 number := 0;
    temp number :=0 ;
    begin
    loop
    exit when temp >= 10 ;
    sum1 := sum1+temp;
    temp := temp +1;
    end loop;
    dbms_output.put_line(sum1 );
    end;

    ---关于游标和loop循环的例子
    create or replace procedure loop_cur
    is
    stu_name varchar2(100);
    course_name varchar2(100);
    cursor var_cur is select * from grade ;
    begin
    open var_cur;
    loop
    fetch var_cur into stu_name,course_name;
    exit when var_cur%notfound;
    dbms_output.put_line(stu_name|| course_name);
    end loop;
    close var_cur;
    end;
    ---关于异常处理的例子
    create or replace procedure peace_exp(in1 in varchar2)
    is
    c_n varchar2(100);
    begin
    select course_name into c_n from grade where stu_name = in1;
    dbms_output.put_line(c_n);
    exception
    when no_data_found
    then
    dbms_output.put_line('try');
    when TOO_MANY_ROWS
    then
    dbms_output.put_line('more');
    end;

    ---关于异常处理的例子2
    create or replace procedure peace_insert ( c_n in varchar2)
    is
    error EXCEPTION;
    begin
    if c_n = 'OK'
    then
    insert into course (course_name) values (c_n);
    elsif c_n = 'NG' then
    insert into course (course_name) values (c_n);
    raise error;
    else
    Dbms_Output.put_line('c_n' || c_n);
    end if;
    commit;
    exception
    when error then
    rollback;
    Dbms_Output.put_line('ERRO');
    end;
    ---关于包的例子 定义包
    create or replace package peace_pkg
    as
    function test1(in1 in varchar2)
    return number;
    procedure test2 (in2 in varchar2);
    end peace_pkg;
    ---关于包的例子 定义包体
    create or replace package body peace_pkg
    as
    function test1(in1 in varchar2)
    return number
    as
    temp number;
    begin
    temp := 0;
    return temp;
    end;
    procedure test2 (in2 in varchar2)
    is
    begin
    dbms_output.put_line(in2);
    end;
    end peace_pkg;

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告
    广告