ORACLE儲存過程

2021-05-22 10:54:25 字數 3708 閱讀 1226

--------------------自定義函式開始--------------------

create or replace function fn_wftemplateidget

(templatecategoryid number,

organid number,

templatemode number

) return number

istemplateid number;

itemcount number;

begin

--取模板中指定機構,指定分類的工作流模板記錄

select count(*) into itemcount

from t_wftemplate

where f_organid = organid and f_templatecategoryid = templatecategoryid;

if itemcount = 1 then

select f_templateid into templateid

from t_wftemplate

where f_organid = organid and f_templatecategoryid = templatecategoryid;

else

templateid := 0;

end if;

return(templateid);

end fn_wftemplateidget;

--------------------自定義函式結束--------------------

--------------------包頭開始--------------------

create or replace package pkg_temp is

type currecordset is ref cursor;

--功能:由人員獲取資料

procedure up_moduleshowbyemployeeid

(employeeid number,

objrs out currecordset

);end pkg_temp;

--------------------包頭結束--------------------

--------------------包體開始--------------------

create or replace package body pkg_temp is

select count(*) into recordcount from vw_employee

where f_loginname = loginname

and f_rowflag = 0;

select count(*) into recordcount from vw_employee

where f_loginname = loginname

and f_password = password

and f_rowflag = 0;

select f_employeeid into employeeid

from vw_employee

where f_loginname = loginname

and f_password = password

and f_rowflag = 0;

end up_loginvalidate;

--功能:獲取記錄集

procedure up_visitlogshow

(visityear number,         --年

visitmonth number,      --月

objrs out currecordset)is

begin

open objrs for

select

c.f_customername as f_organname,

a.f_visitlogid,

a.f_employeeid,

a.f_employeename,

a.f_ipaddress,

to_char(a.f_visittime,'yyyy-mm-dd hh24:mi:ss') as f_visittime,

a.f_visitpage

from vw_visitlog a

left join vw_employee b on b.f_employeeid = a.f_employeeid

left join vw_customer c on c.f_customerid = b.f_organid

where extract(year from a.f_visittime) = visityear

and extract(month from a.f_visittime) = visitmonth

order by f_visitlogid desc;

end up_visitlogshow;

--獲取查詢結果

procedure up_queryshow

(organid number,

linekey varchar2,

objrs out currecordset)is

begin

open objrs for

select

a.*,

case nvl(b.f_typeid ,0)

when 0 then '無型別'

when 1 then '型別1'

else '型別2'

end as f_typename,

b.f_doublelinecode

from vw_lineorgandnshow  a

left join vw_linedistributiongroup b on a.f_linegroupid = b.f_linegroupid

where (f_linekey like linekey||'%' or f_linename like linekey ||'%')

and a.f_organid = organid

and rownum < 20;

end up_linequeryshow;

--功能:游標迴圈

procedure up_wfconfigcopy

(templateid number,                   --源模版id

newtemplatename varchar2,   --新模版名稱

newremark varchar2,               --新模版說明

neworganid number                  --新模版機構id)is

templatecategoryid number;     --源模版分類id

newtemplateid number;            --新模版id

end pkg_temp;

--------------------包體結束--------------------

Oracle儲存過程呼叫儲存過程

oracle儲存過程呼叫有返回結果集的儲存過程一般用光標的方式,宣告乙個游標,把結果集放到游標裡面,然後迴圈游標 declare newcs sys refcursor cs1 number cs2 number cstype table rowtype table列的個數和newcs返回的個數一樣...

Oracle 儲存過程

create or replace procedure p 有就替換,沒有就建立 iscursor c is select from emp for update begin for v emp in c loop if v emp.deptno 10 then update emp2 set sa...

Oracle儲存過程

1 在plsql中新建包,在包中定義儲存過程 create or replace package l image core is 功能說明 取消次品單資訊 修改次品單總資訊及次品單詳細資訊的有效狀態為 y 如果是缺少的檔案,則需要修改單類影像檔案索引表 image doc index 中有效狀態為 ...