I'm running into a problem using Oracle SQL Developer
530272Nov 24 2006 — edited Nov 24 2006When I compile the following package I don't get any errors. I do get a few warnings, but no errors. However the icon that represents the body of the package has a red x in it and I get an error messeage that reads:
ORA-04063: package body "SAFETYUSER.SEL_INCIDENT_INFO" has errors ORA-06508: PL/SQL: could not find program unit being called ORA-06512: at line 1
Can you tell me what the problem is? Thanks in advance. Here is the code:
CREATE OR REPLACE --Copied From EAPP 43 (NMC 11/24/2006)
PACKAGE BODY "SEL_INCIDENT_INFO" as
procedure sel_0022Info
(
in_ID0022 in number,
out_eName out t_varChar2,
out_mName out t_varChar2,
out_Work out t_varChar2,
out_Loc out t_varChar2,
out_Sign out t_varChar2,
out_obsDate out t_varChar2,
out_veh out t_varChar2,
out_vehType out t_varChar2,
out_vehTag out t_varChar2,
out_secSup out t_varChar2,
out_dlic out t_varChar2,
out_dlType out t_varChar2,
out_rc out t_varChar2,
out_JTitle out t_varChar2,
out_actTake out t_varChar2,
out_jobfunc out t_varchar2,
out_ecuid out t_varchar2,
out_mcuid out t_varchar2
)
is
-- cursor to get ecuid ID for entered employee cuid
CURSOR cur0022 IS
select o.euid,o.muid,o.workperf,o.loc,o.obsdate,o.sign,o.dlid,o.secid,o.vehid, o.action, o.eID
from TBL_0022 o
where o.id0022 = in_ID0022;
-- variable
out_eFN varchar2(50);
out_mFN varchar2(50);
out_eJF varchar2(4);
out_DL varchar2(100);
out_DLT varchar2(100);
out_Sec varchar2(100);
out_Vh varchar2(50);
out_VhT varchar2(50);
out_VhTg varchar2(50);
out_eID varchar2(7);
out_eRC varchar2(10);
out_signFull varchar2(50);
out_eJT varchar2(100);
-- rows for cursors
row0022 cur0022%rowtype;
begin
open cur0022;
fetch cur0022 into row0022;
sel_eFullName(row0022.euid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT);
--sel_mFullName(row0022.mcuid,out_mFN);
sel_DL(row0022.DLID,out_DL,out_DLT);
sel_Sec(row0022.secid,out_Sec);
sel_Veh(row0022.vehid,out_Vh,out_VhT,out_VhTg);
out_veh(1) := out_vh;
out_vehType(1) := out_vht;
out_vehTag(1) := out_vhtg;
out_secSup(1) := out_Sec;
out_dlic(1) := out_DL;
out_dlType(1) := out_DLT;
out_eName(1) := out_eFN;
out_mName(1) := out_mFN;
out_Work(1) := row0022.workperf;
out_Loc(1) := row0022.loc;
sel_mfullname(row0022.sign,out_signFull);
out_Sign(1) := row0022.sign;--out_signFull;
out_obsDate(1) :=row0022.obsdate;
out_actTake(1) :=row0022.action;
out_jobFunc(1) := out_eJF;
out_rc(1) := out_eRC;
out_ecuid(1) := row0022.euid;
out_mcuid(1) := row0022.muid;
out_JTitle(1) := out_eJT;
close cur0022;
end;
procedure sel_eFullName
(
in_0022EcuID in varchar2, --number,
out_eFN out varChar2,
out_eJF out varchar2,
out_eID out varchar2,
out_eRC out varchar2,
out_eJT out varchar2
)
is
-- cursor to get ecuid ID for entered employee cuid
CURSOR curCUID IS
select e.efn, e.eln,e.jobfunc,ecuid,rc,e.eid, e.jTitle
from TBL_EINFO e
where e.ecuid = in_0022ecuid
order by e.eid desc;--eid = in_0022EID;
-- rows for cursors
rowCUID curCUID%rowtype;
begin
open curCUID;
fetch curCUID into rowCUID;
out_eFN := rowCUID.efn||' '||rowCUID.eln;
out_eJF := rowCUID.jobfunc;
out_eID := rowCUID.eid;--ecuid;
out_eRC := rowCUID.rc;
out_eJT := rowCUID.jTitle;
close curCUID;
end;
procedure sel_mFullName
(
in_mcuid in varchar2,
out_mFN out varChar2
)
is
-- cursor to get ecuid ID for entered employee cuid
CURSOR curCUID IS
select m.mname
from TBL_managers m
where m.mcuid = in_mcuid;
-- rows for cursors
rowCUID curCUID%rowtype;
begin
open curCUID;
fetch curCUID into rowCUID;
out_mFN := rowCUID.mname;
close curCUID;
end;
procedure sel_DL
(
in_DLID in number,
out_DL out varChar2,
out_DLT out varChar2
)is
-- get Last DL
CURSOR curDL(parDLID number)IS
SELECT D.DL, D.DLTYPE, D.DLID
FROM tbl_DL D
WHERE D.DLID = parDLID;
-- rows for cursors
rowDL curDL%rowtype;
begin
-- get DL if not 0
open curDL(in_DLID);
fetch curDL into rowDL;
if(rowDL.DL!='0')then
out_DL := rowDL.dl;
else
out_DL := '';
end if;
if(rowDL.DLType !='0')then
out_DLT := rowDL.dltype;
else
out_DLT := '';
end if;
close curDL;
end;
procedure sel_Sec
(
in_SecID in number,
out_Sec out varChar2
)is
-- get Last Second Supervisor
CURSOR curSec(parSecID number)IS
SELECT s.Super
FROM tbl_SecSup s
WHERE s.secsID = parSecID;
-- rows for cursors
rowSec curSec%rowtype;
begin
-- get Sec if not 0
open curSec(in_SecID);
fetch curSec into rowSec;
if(rowSec.Super!='0')then
out_Sec := rowSec.Super;
else
out_Sec := '';
end if;
close curSec;
end;
procedure sel_Veh
(
in_VehID in number,
out_Veh out varChar2,
out_VType out varChar2,
out_VTag out varChar2
)is
-- get Last Second Supervisor
CURSOR curVeh(parVehID number)IS
SELECT v.vehicle, v.vehtype, vehtag
FROM tbl_Vehicle v
WHERE v.vehID = parVehID;
-- rows for cursors
rowVeh curVeh%rowtype;
begin
-- get vehicle if not 0
open curVeh(in_VehID);
fetch curVeh into rowVeh;
if(rowVeh.vehicle!='0')then
out_Veh := rowVeh.Vehicle;
else
out_Veh := '';
end if;
if(rowVeh.vehtype!='0')then
out_VType := rowVeh.vehtype;
else
out_VType := '';
end if;
if(rowVeh.vehTag!='0')then
out_VTag := rowVeh.vehTag;
else
out_VTag := '';
end if;
close curVeh;
end;
procedure sel_ObsIds(
in_IncID in number,
out_obsID out t_number
)
is
-- cursor
cursor curFindObsID is
select o.obsID from tbl_obs o where o.id0022 = in_incID;
-- variables
obsExist tbl_Obs.obsid%type;
pcount number default 1;
begin
FOR xLoop IN curFindObsID
LOOP
out_obsID(pcount) := xLoop.obsID;
pcount := pcount + 1;
END LOOP;
end;
procedure sel_ObsIdsWSitem(
in_IncID in number,
in_SitemID in number,
out_obsID out t_number
)
is
-- cursor
cursor curObsIDwSitemID is
select o.obsID from tbl_obs o where o.id0022 = in_incID and o.sitem_id = in_sitemID;
-- variables
pcount number default 1;
begin
FOR xLoop IN curObsIDwSitemID
LOOP
out_obsID(pcount) := xLoop.obsID;
pcount := pcount + 1;
END LOOP;
end;
procedure delObsId(
in_obsID in number
)
is
begin
DELETE FROM tbl_obs o WHERE (o.obsID=in_obsID);
end;
procedure sel_last0022(
in_ecuid in varchar2,
--in_mcuid in varchar2,
out_secSup out t_varChar2,
out_dlic out t_varChar2,
out_dlType out t_varChar2,
out_rc out t_varChar2,
out_veh out t_varChar2,
out_vehtag out t_varChar2,
out_vehtype out t_varChar2,
out_eName out t_varChar2,
out_mcuid out t_varChar2,
out_ecID out t_varchar2,
out_jobFunc out t_varChar2,
out_jTitle out t_varchar2
)
is
---cursor
cursor curGetLast0022 is
select o.vehid, o.dlid, o.secid, o.eid, o.mcuid
from tbl_0022 o
where o.ecuid = in_ecuid --and o.mcuid = in_mcuid
order by o.id0022 desc;
---variables
row0022 curGetLast0022%rowtype;
out_eFN varchar2(50);
out_mFN varchar2(50);
out_eJF varchar2(4);
out_DL varchar2(50);
out_DLT varchar2(50);
out_Sec varchar2(50);
out_Vh varchar2(50);
out_VhT varchar2(50);
out_VhTg varchar2(50);
out_eRC varchar2(10);
out_eID varchar2(7);
out_eJT varchar2(100);
pOut_mCuid varchar2(7);
begin
open curGetLast0022;
fetch curGetLast0022 into row0022;
sel_eFullName(in_ecuid,out_eFN, out_eJF,out_eID,out_eRC,out_eJT);
--sel_mFullName(in_mcuid,out_mFN);
sel_DL(row0022.DLID,out_DL,out_DLT);
sel_Sec(row0022.secid,out_Sec);
sel_Veh(row0022.vehid,out_Vh,out_VhT,out_VhTg);
out_veh(1) := out_vh;
out_vehType(1) := out_vht;
out_vehTag(1) := out_vhtg;
out_secSup(1) := out_Sec;
out_dlic(1) := out_DL;
out_dlType(1) := out_DLT;
out_eName(1) := out_eFN;
if(row0022.mcuid IS NULL)then
sel_EInfoMCuid(in_ecuid,pOut_mCuid);
out_mcuid(1) := pOut_mCuid;
else
out_mcuid(1) := row0022.mcuid;
end if;
--sel_EInfoMCUID(in_ecuid,pOut_mCuid);
--out_mcuid(1) := pOut_mCuid;
out_rc(1) := out_eRC;
out_ecID(1) := out_eID;
out_jobfunc(1) := out_eJF;
out_jTitle(1) := out_eJT;
close curGetLast0022;
end;
procedure sel_EInfoMCUID(
pIn_ecuid in varchar2,
out_mcuid out varchar2
)
is
-- cursor
cursor curEInfoMCuid is
select e.eid, e.mcuid from tbl_einfo e where e.ecuid = pIn_ecuid order by e.eid desc;
-- variables
rowMCuid curEInfoMCuid%rowtype;
begin
open curEInfoMCuid;
fetch curEInfoMCuid into rowMCuid;
close curEInfoMcuid;
out_mcuid := rowMCuid.mcuid;
end;
procedure sel_empInfo
(
in_0022EcuID in varchar2, --number,
out_eFN out t_varchar2,
out_eJF out t_varchar2,
out_eID out t_varchar2,
out_eRC out t_varchar2,
out_eJT out t_varchar2,
out_eStA out t_varchar2,
out_eStaN out t_varchar2,
out_eMcuid out t_varchar2
)
is
-- cursor to get ecuid ID for entered employee cuid
CURSOR curCUID IS
select e.efn, e.eln,e.jobfunc,ecuid,rc,e.eid, e.jTitle,e.stA, e.stacode,e.MCUID
from TBL_EINFO e
where e.ecuid = in_0022ecuid
order by e.eid desc;--eid = in_0022EID;
-- rows for cursors
rowCUID curCUID%rowtype;
begin
open curCUID;
fetch curCUID into rowCUID;
out_eFN(1) := rowCUID.efn||' '||rowCUID.eln;
out_eJF(1) := rowCUID.jobfunc;
out_eID(1) := rowCUID.eid;--ecuid;
out_eRC(1) := rowCUID.rc;
out_eJT(1) := rowCUID.jTitle;
out_eStA(1) := rowCUID.sta;
out_eStaN(1) := rowCUID.staCode;
out_eMcuid(1) := rowCUID.mcuid;
close curCUID;
end;
end;