首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套表上的Oracle触发器

嵌套表上的Oracle触发器
EN

Stack Overflow用户
提问于 2013-11-27 02:27:38
回答 1查看 1.6K关注 0票数 0

我想要创建一个触发器来验证出生日期,例如,它不是SYSDATE:

代码语言:javascript
复制
Employee -- STRUCTURED TYPE
{
     name VARCHAR2(10)
     lastname VARCHAR(10)
     birthdate DATE
}

Employee_List TABLE OF Employee -- NESTED TABLE

Museum -- TABLE
{
     id NUMBER
     EmployeeList Employee_List
}

我在用甲骨文10g。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-27 07:25:51

您不能定义像“在Museum.EmployeeList.birthdate更新之前”这样的触发器,但是您可以在博物馆更新之前编写一个普通触发器,在触发器体中可以遍历所有检查日期的员工。

试试这个:

代码语言:javascript
复制
CREATE OR REPLACE TRIGGER BUIR_Museum 
    BEFORE INSERT OR UPDATE ON Museum
    FOR EACH ROW

BEGIN
    IF :NEW.EmployeeList IS NOT NULL THEN
        FOR i IN :NEW.EmployeeList.FIRST..:NEW.EmployeeList.LAST LOOP
            IF :NEW.EmployeeList(i).birthdate > SYSDATE THEN
                RAISE_APPLICATION_ERROR(-20029, 'Invalid birthday');
            END IF;
        END LOOP;
    END IF;
END;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20232794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档