oracle函式及包的管理方式

2021-10-01 09:05:55 字數 2445 閱讀 9199

--但個函式進行管理

create or replace function testuser.proone(shortname in varchar2)  return varchar2 is

tmaxno2 varchar(64);

pragma autonomous_transaction;

begin

declare

tmaxno integer := 0;

tmaxno1 varchar(32) ;

tmaxno2 varchar(32) ;

yeary varchar(2) ;

begin

select max(maxno) into tmaxno from  testuser.t_maxno_conf where type='proone';

if tmaxno is null or tmaxno='' then

insert into  testuser.t_maxno_conf(type,maxno)values('proone',1);

commit;

tmaxno:=1;

select lpad('1','2',0) into tmaxno1 from dual;

tmaxno2:='hk-'||yeary||'-'||shortname||'-'||tmaxno1;

else

update  testuser.t_maxno_conf a set a.maxno=a.maxno+1  where a.type='proone';

commit;

select lpad(tmaxno,'2',0) into tmaxno1 from dual;

select substr(extract(year from sysdate),3,4) into yeary from dual;

tmaxno2:='hk-'||yeary||'-'||shortname||'-'||tmaxno1;

end if;

return tmaxno2;

end;

end proone;  --不需要加屬主,否則報錯

包的方式進行函式管理

包頭create or replace package testuser.testuser_project_package is

function proone(shortname in varchar2)  return varchar2 ;

end testuser_project_package;  --結尾不需要加屬主

包體create or replace package body testuser.testuser_project_package  --包體開頭,可以加屬主

isfunction proone(shortname in varchar2)

return varchar2 is

tmaxno2 varchar(64);

pragma autonomous_transaction;

begin

declare

tmaxno integer := 0;

tmaxno1 varchar(32) ;

tmaxno2 varchar(32) ;

yeary varchar(2) ;

begin

select max(maxno) into tmaxno from testuser.t_maxno_conf where type='proone';

if tmaxno is null or tmaxno='' then

insert into  testuser.t_maxno_conf(type,maxno)values('proone',1);

commit;

tmaxno:=1;

select lpad('1','2',0) into tmaxno1 from dual;

tmaxno2:='hk-'||yeary||'-'||shortname||'-'||tmaxno1;

else

update testuser.t_maxno_conf a set a.maxno=a.maxno+1  where a.type='proone';

commit;

select lpad(tmaxno,'2',0) into tmaxno1 from dual;

select substr(extract(year from sysdate),3,4) into yeary from dual;

tmaxno2:='hk-'||yeary||'-'||shortname||'-'||tmaxno1;

end if;

return tmaxno2;  --每個函式體的結尾標示

end ;

end proone; --包體的結尾標示

end testuser_project_package;  --結尾不需要加屬主

文件的管理方式

摘要 這裡只對手寫文件的管理進行個人方式的總結。包括文件的書寫和儲存等。以下部分基於假設 你使用markdown書寫文件。markdown,vscode,mpe1 markdownlint,git,github 2 理論上,應使用markdown語言進行編輯,並控制每行只有一句話。而在markdow...

python的包管理方式

模組包 包通常總是乙個目錄,目錄下為首的乙個檔案便是 init py。然後是一些模組檔案和子目錄,假如子目錄中也有 init py 那麼它就是這個包的子包了。差不多就像這樣吧 假定我們的包的例子有如下的目錄結構 phone init py common util.py voicedta init p...

C 的記憶體管理方式

c語言記憶體管理方式在c 中可以繼續使用,同時c 又提出了自己的記憶體管理方式 通過new和delete運算子進行動態記憶體管理。舉例來說明他們的使用 void test new和delete,new和delete一定要配合使用,不然就會導致記憶體洩漏或者崩潰的問題 new申請空間時會將括號中的物件...