PL/SQL Developer

1.Command Window

View nt_affix; 浏览nt_affix

Edit ob_affix; 编辑ob_affix

Drop type nt_affix2  /; 删除nt_affix

Create type nt_affix as table of ob_affix; 创建个nt_affix继承ob_affix

2.OB/NT/PKG都存于这个表名为USER_OBJECTS中

3.OB:

右键点击右边Types新建OB

create or replace type OB_SALECHECKON as object

(

-- Author  : zyp

-- Created : 2012/4/20 12:25:17

-- Purpose : OB_SALECHECKON

-- Attributes

agentID        VARCHAR2(32), -- N  被考勤ID

agentName      VARCHAR2(64), -- N 被考勤名字

checkName      VARCHAR2(64), -- N 考勤人

agentCode      VARCHAR2(32), -- N 被考勤人编号

agentLevel     VARCHAR2(32), -- N 被考勤人层级

checkItem      VARCHAR2(64), -- Y 被考勤项目

checkStatus    VARCHAR2(32), -- Y 考勤状态

checkStartTime DATE, -- Y 考勤开始时间

checkEndTime   DATE, -- Y 考勤结束时间

onTime         INT, -- Y 准时(次)

beLate         INT, -- Y 迟到

leave          INT, -- Y 请假

attendance     VARCHAR2(64), --被考勤人出勤率

checkWork      INT, --被考勤人被考勤次数

noCheckWork    INT, --被考勤人未被考勤

-- Member functions and procedures

CONSTRUCTOR FUNCTION OB_SALECHECKON RETURN SELF AS RESULT

)

------------------------------------------------------------------

CREATE OR REPLACE TYPE BODY OB_SALECHECKON IS

CONSTRUCTOR FUNCTION OB_SALECHECKON RETURN SELF AS RESULT IS

BEGIN

RETURN;

END;

END;

4.NT:

点击SQL Window直接运行

CREATE OR REPLACE TYPE nt_salecheckon AS TABLE OF ob_salecheckon

5.PKG:

右键点击右边Packages新建pkg

create or replace package PKG_SALECHECKON is

-- Author  : zyp

-- Created : 2012/4/20 14:39:24

-- Purpose : 当前插入考勤明细

function SALECHECKON(MAINID      in varchar2,

CHECKSTATUS in varchar2,

AGENTLEVEL  in varchar2) return nt_SALECHECKON;

end PKG_SALECHECKON;

---------------------------------------------------------------------------------------------------------------------------

create or replace package body PKG_SALECHECKON is

function SALECHECKON(MAINID      in varchar2, --in传入的参数,out传出的参数

CHECKSTATUS in varchar2,

AGENTLEVEL  in varchar2) return nt_SALECHECKON is

I                smallint := 1; --遍历数声明

P_NT_SALECHECKON NT_SALECHECKON := NEW nt_salecheckon(); --实例化NT

begin

for C in (select it.checkedagentcode as agentCode,

it.checkedname      as agentName,

it.agenglevel       as agentLevel,

ma.startdatetime    as checkStartTime,

ma.enddatetime      as checkEndTime,

it.checkres         as checkStatus

from SALECHECKONMAIN ma, SALECHECKONITEM it

where ma.salecheckonmainid = it.salecheckonmainid

and ma.salecheckonmainid = MAINID

and checkres = CHECKSTATUS

and it.agenglevel = AGENTLEVEL) loop

P_NT_SALECHECKON.EXTEND; --P_NT_SALECHECKON扩展

P_NT_SALECHECKON(I) := new OB_SALECHECKON(); --实例化OB

P_NT_SALECHECKON(I).agentCode := C.AGENTCODE; --获取对应的值

P_NT_SALECHECKON(I).agentName := C.AGENTNAME;

P_NT_SALECHECKON(I).agentLevel := C.AGENTLEVEL;

P_NT_SALECHECKON(I).checkStartTime := C.CHECKSTARTTIME;

P_NT_SALECHECKON(I).checkEndTime := C.CHECKENDTIME;

P_NT_SALECHECKON(I).checkStatus := C.CHECKSTATUS;

I := I + 1;

end loop;

RETURN P_NT_SALECHECKON;

end;

end PKG_SALECHECKON;

6.执行PKG:

SELECT * FROM table(PKG_SALECHECKON.SALECHECKON('LEC0000000099821','CHECKSTATUS_2','AM'))

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐