日期:2014-05-17 浏览次数:21278 次
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