数据库中包的使用

create or replace package pg_test is

  --包:公开的:开放包体的程序名的定义,提供给外部访问
procedure pr_test;

function fn_test2(tablename in varchar2) return  number;
  

end pg_test;
create or replace package body pg_test is

--包体:存放程序,私有的。

  
  --定义了存储过程
  procedure pr_test is 
begin
--存储过程代码
Dbms_Output.put_line('这是输出的一句话');
--serveroutput 系统设置想 是否在命令窗口输出是 默认是off
--set serveroutput on; 打开系统输出为on
--只针对当前命令窗口有效
update student set ssex='男' where ssex='1';

commit;

Dbms_Output.put_line('修改数据成功');

end pr_test;


function  fn_test2(tablename in varchar2) return  number is
  rtn number ;
begin
  --通用的而获取表的数据行数的函数
  
  --执行的语句不是固定的
EXECUTE IMMEDIATE'  select count(1) from '|| tablename into rtn;

--'insert into student values (:1,:2)' using

return(rtn);

   exception when others then
             --处理异常
             dbms_output.put_line('发生异常');
return(-1);

end fn_test2;



end pg_test;

 

posted @ 2016-10-20 21:20  张好好  阅读(663)  评论(0编辑  收藏  举报