`
Appleses
  • 浏览: 347943 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle简单PKG(包)编写

 
阅读更多
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'))
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    package模板

    通过模板,你可以快速创建一个包含所需接口的pkg包,减少手动编写的时间,提高代码的一致性和可维护性。 其次,"并发pkg包"是为了处理多用户同时访问同一资源的情况。在Oracle中,我们可以使用DBMS_JOB或DBMS_...

    Oracle存储过程编写与调试

    Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL语句和PL/SQL块,并将它们作为一个单元来执行。这极大地提高了代码的重用性和数据库操作的效率。下面我们将深入探讨Oracle存储过程...

    Oracle调用Java代码过程

    Oracle调用Java代码过程是一种将Java程序集成到Oracle数据库中的技术,主要应用于处理特定的业务逻辑,例如在本例中,是为了访问异构数据库(如DB2)的数据。以下是详细的步骤和注意事项: **步骤一:加载JDBC驱动*...

    jdk8.pkg.zip

    总之,“jdk8.pkg.zip”是一个针对Mac用户的Java 8开发工具包,提供了一种快速下载和安装的途径,避免了直接从Oracle官网下载的不便。对于开发人员来说,拥有Java 8的JDK是进行Java编程的基础,这个压缩包无疑为他们...

    java_jdk8.pkg.zip

    其中最显著的改进之一是 Lambda 表达式,这是一种简洁的函数式编程方式,使得编写多线程代码和处理集合数据变得更加简洁。Lambda表达式可以替代匿名内部类,使代码更易读且更少出错。 另一个关键特性是方法引用,它...

    oracle

    在 Oracle 数据库中,"pkg" 文件通常代表包(Package),这是一种组织 PL/SQL 代码的方法,它可以包含过程、函数、类型和其他包。"tpwms_pkg_util" 可能是用户创建的一个包,用于实现特定的业务逻辑或数据库维护任务...

    Oracle编码规范

    - `create or replace package body my_pkg`:创建或替换包体`my_pkg`。 - 定义了一个全局变量`g_variable`。 - 定义了一个过程`my_proc`,该过程接收一个输入参数`p_variable`,并在过程中声明了一个局部变量`l_...

    汉字转全拼或首字母Oracle存储过程

    包(Package)在Oracle中是一种将相关的过程、函数、变量和类型等组织在一起的方式,以提供更好的封装和重用性。 一个基本的汉字转全拼的存储过程可能会包含以下部分: 1. **输入参数**:通常会有两个输入参数,一...

    delphi调用Oracle的存储过程

    4. **编写事件处理程序**:双击`Button1`,在`Button1Click`事件处理程序中编写代码以调用Oracle存储过程。 #### Delphi中调用Oracle存储过程 以下是完整的Delphi代码示例,用于调用上述创建的Oracle存储过程: `...

    arcsde 操作oracle的操作原理

    4. **SDE.ST_GEOMETRY_SHAPELIB_PKG.ASTEXT存储过程**:这是一个C语言编写的外部过程,通过调用动态库中的算法,完成空间数据到文本的转换。这个过程涉及了空间参考系统(SRS)的选择、坐标变换和格式化输出等一系列...

    Oracle中的package对象

    Oracle中的Package对象是一种独特的特性,它体现了Oracle数据库的面向对象编程理念。Package允许开发者像创建对象一样定义一组相关的过程、函数、类型以及全局变量,这些元素共享同一个命名空间,提高了代码的组织性...

    oracle数据库开发规范.pdf

    8. 包(package): 一组相关的过程、函数、变量和SQL语句的集合,如“pkg_”。 9. 类型(type): 用户自定义的数据结构,文档中提及了“typ_pk_”。 10. 外键(fk_): 用于强制数据完整性,确保表中数据与另一个表...

    delphi中调用oracle的存储过程.doc

    例如,创建一个名为 `PKG_JCCTEST1` 的包,其中包含三个过程:`GetSubAndSum2`(返回两个数字的差和和)、`GetClass2`(返回 pnumber 大于指定值的 aaclass 表数据)和 `InsertClass`(向 aaclass 表插入新记录)。...

    ORACLE转DB2对照全解

    **注意:** Oracle支持基于PL/SQL的表类型,而DB2则提供了一种更简单的方式定义表格类型的变量。 ##### 4.2 在存储过程间传递集合参数 **Oracle:** ```sql CREATE OR REPLACE PROCEDURE pass_collection( p_coll ...

    大型项目Oracle sql,function,procedures,package,cursor,job

    在名为“product_pkg”的压缩包中,可能包含了处理产品相关数据的PL/SQL包,比如管理产品库存、订单、价格等功能。学习这个包的内容,将帮助你理解和掌握如何在实际的大型项目中有效地使用Oracle数据库进行开发和...

    Oracle数据库程序包全局变量的应用

    例如,可以定义一个名为`PKG_System_Constant`的程序包,包含一个常量`C_SystemTitle`和一个全局变量`G_CurrentDate`,并提供获取和设置这些变量的函数和过程。 2. **定义程序包体**:接下来,创建程序包体,实现...

    ORACLE技巧 - 不同记录集的横向合并

    在Oracle数据库环境中,可以通过多种方式来实现这一目标,包括编写存储过程、使用游标、创建临时表等方法。本文将重点介绍如何运用Oracle中的`MINUS`函数和`OVER`函数,通过构建视图的方式来直接比较两个记录集的...

    oracle 中转

    2. **PL/SQL编程**:Oracle的内置编程语言,用于编写数据库逻辑,如处理汉字转拼音的函数或包。 3. **字符串处理**:在PL/SQL中,涉及对字符或字符串的操作,例如分割、连接、比较等,这些在拼音转换中可能会用到。 ...

    oracle数据库管理工具(支持您从开发到系统管理的全过程)

    在开发阶段,Oracle提供SQL Developer,这是一款免费的集成开发环境(IDE),它支持编写、调试、执行SQL和PL/SQL代码,以及管理数据库对象。Object Browser是SQL Developer中的一个重要组件,它允许用户以树形结构...

    数据库ORACLE命名规范(标准版)

    - 包是用来组织相关过程和函数的,名称通常以业务领域或模块名开头,如`HR_EMPLOYEE_PKG`表示人力资源模块的员工处理包。 9. **触发器(Trigger)命名规范**: - 触发器在特定事件发生时执行,名称应包含触发时机...

Global site tag (gtag.js) - Google Analytics