oracle 包 及 包呼叫

2021-08-18 22:36:48 字數 1520 閱讀 3426

--建立包頭

create package testpack --建立乙個包頭,裡面定義變數和方法名稱,方法引數,返回值型別

is                   

v_tax number;

v_s number;

function tax(v_money number) return number;

function addd(v_a number,v_b number) return number;

end testpack;

--建立包體

create package body testpack --建立包體,裡面具體實現包頭定義的方法.注意格式

is       

function tax(v_money number)   return number is

begin

if(v_money<3500) then null;

elsif(v_money>=3500 and v_money<5000) then v_tax := (v_money-3500)*0.03-0;

elsif(v_money>=5000 and v_money<8000) then v_tax := (v_money-3500)*0.1-105;

elsif(v_money>=8000 and v_money<12500) then v_tax := (v_money-3500)*0.2-555;

elsif(v_money>=12500 and v_money<38500) then v_tax := (v_money-3500)*0.25-1005;

elsif(v_money>=38500 and v_money<58500) then v_tax := (v_money-3500)*0.3-2755;

elsif(v_money>=58500 and v_money<83500) then v_tax := (v_money-3500)*0.35-5505;

elsif(v_money>=83500) then v_tax := (v_money-3500)*0.45-13505;  

end if;

return v_tax ;

end tax;

function addd(v_a number,v_b number) return number is

begin

v_s := v_a+v_b;

return v_s;

end addd;

end testpack;

---呼叫方法

declare

v_tax number;

v_s number;

begin

v_tax:= scott.testpack.tax(&input2);

v_s := scott.testpack.addd(&input,&input1);

dbms_output.put_line(v_s);

dbms_output.put_line(v_tax);

end;

python 不同包之間呼叫(包同級)

com crawler02.py init py core crawler core.py init py crawler01.py init py toolcrawler01 和 crawler02都需要呼叫crawler core 下簡稱f 中的方法。crawler01 是f的父級目錄下的檔案其...

Oracle如何限制非法呼叫包中過程

原文 假如我有乙個包p a,其中封裝了重要過程do a。另有乙個包p b需要呼叫p a.do a實現重要商業邏輯。我想只授權給包p b呼叫,認為其他途徑呼叫p a.do a都是非法的!下面根據pl sql開發大師 福伊爾斯坦 提供的方法實現如下 create or replace package p...

oracle程式包的建立和呼叫

oracle程式包分包頭和包體 建立包頭create or replace package pak1 is 儲存過程addnumber procedure addnumber x in number,y in number 函式addfunction function addfunction x i...