【发布时间】:2015-10-23 04:50:51
【问题描述】:
背景:我有桌子:
TUTPRAC: CLASSID、UNITCODE、STAFFNO、CLASSDAY、CLASSTIME、CLASSTYPE、ROOMNUM
UNITSTREAM: STREAMID、UNITCODE、STAFFNO、日期、时间、位置
问题:所以我有一个数据库和表,我试图创建一个函数,在打开一个新类之前检查一个类是否打开,这 程序必须确保两者之间没有任何重叠(在时间、日期或位置方面的冲突) 该特定单元的流(讲座),辅导课程和实践课程。 TUTPRACS 包含教程和实践的记录,而 UNITSTREAM 包含流(讲座)的记录。
我也希望程序也 引发一个名为 CLASS_OVERLAPS 的异常,在发生冲突时打印一条警报消息。
我对 PL/SQL 还很陌生,因此我们将不胜感激。
CREATE OR REPLACE PROCEDURE OPEN_CLASS(
p_class IN TUTPRAC.CLASSID%TYPE,
p_unitc IN TUTPRAC.UNITCODE%TYPE,
p_classd IN TUTPRAC.CLASS_DAY%TYPE,
p_classt IN TUTPRAC.CLASS_TIME%TYPE,
p_classtp IN TUTPRAC.CLASS_TYPE%TYPE,
p_roomnm IN TUTPRAC.ROOMNUM%TYPE)
IS
BEGIN
INSERT INTO TUTPRAC ("CLASSID", "UNITCODE", "CLASS_DAY", "CLASS_TIME", "CLASS_TYPE", "ROOMNUM")
VALUES (p_class, p_unitc, p_classd, p_classt, p_classtp, p_roomnm);
COMMIT;
END;
【问题讨论】:
标签: sql oracle stored-procedures plsql