测试 上oracle练习(二)中的function
--下面的sql 语句是测试 包 pkg_user 中的function用的
-- 1、测试 adduser 函数
-- 函数原型:adduser(name in varchar2, type in number,mobileno in varchar2,note in varchar2,oper_code out number) return number
declare
test_result integer;
oper_code integer;
begin
-- 插入记录
test_result:=pkg_user.adduser('karen1',1,'123456789','测试案例01',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen2',2,'123456789','测试案例02',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen3',3,'123456789','测试案例03',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen4',1,'123456789','测试案例04',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen5',2,'123456789','测试案例05',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen6',3,'123456789','测试案例06',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
test_result:=pkg_user.adduser('karen7',1,'123456789','测试案例07',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
-- 插入已经存在的用户
test_result:=pkg_user.adduser('karen1',1,'123456789','测试案例08',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
-- 插入输入为null 的记录
test_result:=pkg_user.adduser(null,1,'123456789','测试案例05',oper_code);
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
end;
commit;
--2、测试 update 函数
-- 函数原型:updateuser(id in number,name in varchar2, type in number,mobileno varchar2,note varchar2,oper_code out number)
declare
test_result integer;
oper_code integer;
begin
-- 修改存在的用户
test_result:=pkg_user.updateuser(22,'karen03',2,'00000','修改测试',oper_code); -- id= 22 的用户存在
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
-- 修改不存在的用户
test_result:=pkg_user.updateuser(0,'karen03',2,'00000','修改测试',oper_code); -- id=0 的用户不存在
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
end;
commit;
--3、测试 delete 函数
--deleteuser(id in number,oper_code out number) return number
declare
test_result integer;
oper_code integer;
begin
-- 删除存在的用户
test_result:=pkg_user.deleteuser(23,oper_code); -- id=23 的用户存在
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
-- 删除不存在的用户
test_result:=pkg_user.deleteuser(0,oper_code); -- id=0 的用户不存在
dbms_output.put_line('test_result='||test_result);
dbms_output.put_line('oper_code='||oper_code);
end;
commit;
-- 4、测试 statuser 函数
-- 函数原型:statUser return sys_refcursor
declare
v_ref_cursor SYS_REFCURSOR;
v_type integer;
v_total integer;
begin
v_ref_cursor:=pkg_user.statUser;
/* if v_ref_cursor%isopen = false then
open v_ref_cursor;
end if;*/
dbms_output.put_line('type'||' '||'total');
fetch v_ref_cursor into v_type,v_total;
while v_ref_cursor%found
loop
dbms_output.put_line(v_type||' '||v_total);
fetch v_ref_cursor into v_type,v_total;
end loop;
close v_ref_cursor;
end;
commit;