日期:2014-05-17 浏览次数:21162 次
create or replace package pack_sunyard_test is type refcur is ref cursor; /****************************************************************************** --函数名称: func_sunyard_test --作者: sunyard_zhengxl --时间: 2007年04月01日 --使用源表名称: sunyard.tset_a(测试表A) sunyard.tset_b(测试表B) --目标表明称: --参数说明: -- i_id (ID值) -- o_name (返回NAME值) --功能: oracle plsql开发示例-函数 --解释: ******************************************************************************/ function func_sunyard_test( i_id in number --ID值 ) return varchar2; /****************************************************************************** --存储过程名称: proc_sunyard_test1 --作者: sunyard_zhengxl --时间: 2007年04月01日 --使用源表名称: sunyard.tset_a(测试表A) sunyard.tset_b(测试表B) --目标表明称: --参数说明: -- i_id (ID值) -- o_name (返回NAME值) --功能: oracle plsql开发示例-数据类型、控制结构、调用函数 --解释: ******************************************************************************/ procedure proc_sunyard_test1( i_id in number, --ID值 o_name out varchar2 --姓名 ); /****************************************************************************** --存储过程名称: proc_sunyard_test2 --作者: sunyard_zhengxl --时间: 2007年04月01日 --使用源表名称: sunyard.tset_a(测试表A) sunyard.tset_b(测试表B) --目标表明称: --参数说明: -- i_id (ID值) -- o_name (返回NAME值) --功能: oracle plsql开发示例-调用过程、游标、游标变量、动态sql --解释: ******************************************************************************/ procedure proc_sunyard_test2( i_id in number, --ID值 o_name out varchar2, --姓名 o_cur out refcur --游标变量 ); end pack_sunyard_test; / create or replace package body pack_sunyard_test is /****************************************************************************** --函数名称: func_sunyard_test --作者: sunyard_zhengxl --时间: 2007年04月01日 --使用源表名称: sunyard.tset_a(测试表A) sunyard.tset_b(测试表B) --目标表明称: --参数说明: -- i_id (ID值) -- o_name (返回NAME值) --功能: oracle plsql开发示例-函数 --解释: ******************************************************************************/ function func_sunyard_test( i_id in number --ID值 ) return varchar2 is v_name varchar2(10); --姓名 begin --根据输入的ID查询相应的NAME值 select a.name into v_name from test_a a where a.id = i_id; return v_name; exception when others then raise;--抛出异常到调用模块 end func_sunyard_test; procedure proc_sunyard_test1( i_id in number, --ID值 o_name out varchar2 --姓名 ) is v_code1 number; v_code2 number(17,2); v_name varchar2(100); begin --number显式或隐式转换成varchar2时会将前面的0转换掉 v_name := '001'; v_code1 := v_name; --控制结构 if v_name = '001' then v_code1 := 0; elsif v_name = '002' then v_code1 := 1; else v_code1 := -1; end if; case v_name when '001' then v_code1 := 0; when '002' then v_code1 := 1; else v_code1 := -1; end case; loop