欢迎光临
我们一直在努力

oracle包的创建

一 包的组成

1)包头(package):包头部分申明包内数据类型,常量,变量,游标,子程序和异常错误处理,

   这些元素为包的公有元素。

2)包主体(package body):包主体则是包定义部分的具体实现,它负责为包头中所声明子程序

   提供具体的实现,在包主体中还可以声明包的私有元素

3)包头和包主体分开编译,并作为两个分开的对象分别存放在数据库字典中

–删除package

–drop package pkg_lxg_test;

–1)首先创建package头(头和body的sql不要写在同一个文件中执行)

—- 这里可以声明多个procedure(如果外部调用才声明)

create or replace package pkg_lxg_test as

  procedure deleteTask(taskTypeCode  in varchar2, –任务类型代码

                     businessKey   in varchar2, –业务号

                     resultCode    out varchar2, –结果代码

                     resultMessage out varchar2 –结果信息

                     );

end pkg_lxg_test;

–)2 再创建package体(上面的头不能和体一起执行,移交时应该写成两个sql文件进行移交)

–)3 创建完成后,如果创建成功了会自动编译的

–)4 如果在创建package不成功的话,在查看和说明中可以查看到错误

–)5 package创建完成后,–>右键,查看—>然后选中你要测试的package中的proc点击右键—》测试

CREATE OR REPLACE PACKAGE BODY NBADATA.pkg_lxg_test AS

function function2(taskTypeCode  in varchar2,businessKey in varchar2) return varchar2

  is

   v_preview_environment  varchar2(4);

   v_voucher_no varchar2(50);

   v_count          number default 0;

begin

   v_preview_environment:= ‘1’;

   –dbms_output.put_line(‘执行了方法function2’);

   return v_preview_environment;

end function2;

 –这里定义procedure,可以定点多个

 procedure deleteTask(taskTypeCode  in varchar2, –任务类型代码

                     businessKey   in varchar2, –业务号

                     resultCode    out varchar2, –结果代码

                     resultMessage out varchar2 –结果信息

                     ) IS

 begin

       begin

             resultCode    := ‘0’;

             resultMessage := ‘delete asynchrouns task sucess’;

            –dbms_output.put_line(‘成功执行了存储过程’);

       exception

         when others then

           resultCode    := ‘1’;

           resultMessage := ‘fail in deleting asynchrouns task sucess’;

       end;

 end deleteTask;

end pkg_lxg_test;

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。