PL/SQL Developer
1. Command Window
View nt_affix; 浏览nt_affix
Edit ob_affix; 编辑ob_affix
Drop type nt_affix2 /; 删除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'))
分享到:
相关推荐
通过模板,你可以快速创建一个包含所需接口的pkg包,减少手动编写的时间,提高代码的一致性和可维护性。 其次,"并发pkg包"是为了处理多用户同时访问同一资源的情况。在Oracle中,我们可以使用DBMS_JOB或DBMS_...
Oracle存储过程是数据库管理系统Oracle中的一种重要特性,它允许开发者编写一组SQL语句和PL/SQL块,并将它们作为一个单元来执行。这极大地提高了代码的重用性和数据库操作的效率。下面我们将深入探讨Oracle存储过程...
Oracle调用Java代码过程是一种将Java程序集成到Oracle数据库中的技术,主要应用于处理特定的业务逻辑,例如在本例中,是为了访问异构数据库(如DB2)的数据。以下是详细的步骤和注意事项: **步骤一:加载JDBC驱动*...
总之,“jdk8.pkg.zip”是一个针对Mac用户的Java 8开发工具包,提供了一种快速下载和安装的途径,避免了直接从Oracle官网下载的不便。对于开发人员来说,拥有Java 8的JDK是进行Java编程的基础,这个压缩包无疑为他们...
其中最显著的改进之一是 Lambda 表达式,这是一种简洁的函数式编程方式,使得编写多线程代码和处理集合数据变得更加简洁。Lambda表达式可以替代匿名内部类,使代码更易读且更少出错。 另一个关键特性是方法引用,它...
在 Oracle 数据库中,"pkg" 文件通常代表包(Package),这是一种组织 PL/SQL 代码的方法,它可以包含过程、函数、类型和其他包。"tpwms_pkg_util" 可能是用户创建的一个包,用于实现特定的业务逻辑或数据库维护任务...
- `create or replace package body my_pkg`:创建或替换包体`my_pkg`。 - 定义了一个全局变量`g_variable`。 - 定义了一个过程`my_proc`,该过程接收一个输入参数`p_variable`,并在过程中声明了一个局部变量`l_...
包(Package)在Oracle中是一种将相关的过程、函数、变量和类型等组织在一起的方式,以提供更好的封装和重用性。 一个基本的汉字转全拼的存储过程可能会包含以下部分: 1. **输入参数**:通常会有两个输入参数,一...
4. **编写事件处理程序**:双击`Button1`,在`Button1Click`事件处理程序中编写代码以调用Oracle存储过程。 #### Delphi中调用Oracle存储过程 以下是完整的Delphi代码示例,用于调用上述创建的Oracle存储过程: `...
4. **SDE.ST_GEOMETRY_SHAPELIB_PKG.ASTEXT存储过程**:这是一个C语言编写的外部过程,通过调用动态库中的算法,完成空间数据到文本的转换。这个过程涉及了空间参考系统(SRS)的选择、坐标变换和格式化输出等一系列...
Oracle中的Package对象是一种独特的特性,它体现了Oracle数据库的面向对象编程理念。Package允许开发者像创建对象一样定义一组相关的过程、函数、类型以及全局变量,这些元素共享同一个命名空间,提高了代码的组织性...
8. 包(package): 一组相关的过程、函数、变量和SQL语句的集合,如“pkg_”。 9. 类型(type): 用户自定义的数据结构,文档中提及了“typ_pk_”。 10. 外键(fk_): 用于强制数据完整性,确保表中数据与另一个表...
例如,创建一个名为 `PKG_JCCTEST1` 的包,其中包含三个过程:`GetSubAndSum2`(返回两个数字的差和和)、`GetClass2`(返回 pnumber 大于指定值的 aaclass 表数据)和 `InsertClass`(向 aaclass 表插入新记录)。...
**注意:** Oracle支持基于PL/SQL的表类型,而DB2则提供了一种更简单的方式定义表格类型的变量。 ##### 4.2 在存储过程间传递集合参数 **Oracle:** ```sql CREATE OR REPLACE PROCEDURE pass_collection( p_coll ...
在名为“product_pkg”的压缩包中,可能包含了处理产品相关数据的PL/SQL包,比如管理产品库存、订单、价格等功能。学习这个包的内容,将帮助你理解和掌握如何在实际的大型项目中有效地使用Oracle数据库进行开发和...
例如,可以定义一个名为`PKG_System_Constant`的程序包,包含一个常量`C_SystemTitle`和一个全局变量`G_CurrentDate`,并提供获取和设置这些变量的函数和过程。 2. **定义程序包体**:接下来,创建程序包体,实现...
在Oracle数据库环境中,可以通过多种方式来实现这一目标,包括编写存储过程、使用游标、创建临时表等方法。本文将重点介绍如何运用Oracle中的`MINUS`函数和`OVER`函数,通过构建视图的方式来直接比较两个记录集的...
2. **PL/SQL编程**:Oracle的内置编程语言,用于编写数据库逻辑,如处理汉字转拼音的函数或包。 3. **字符串处理**:在PL/SQL中,涉及对字符或字符串的操作,例如分割、连接、比较等,这些在拼音转换中可能会用到。 ...
在开发阶段,Oracle提供SQL Developer,这是一款免费的集成开发环境(IDE),它支持编写、调试、执行SQL和PL/SQL代码,以及管理数据库对象。Object Browser是SQL Developer中的一个重要组件,它允许用户以树形结构...
- 包是用来组织相关过程和函数的,名称通常以业务领域或模块名开头,如`HR_EMPLOYEE_PKG`表示人力资源模块的员工处理包。 9. **触发器(Trigger)命名规范**: - 触发器在特定事件发生时执行,名称应包含触发时机...