小编Pat*_*k K的帖子

插入视图时收到"ORA-01031:权限不足"错误

在用户名'MY_ADMIN'下,我成功创建了一个名为'NOTIFICATIONS'的表和一个名为'V_NOTIFICATIONS'的视图.在'V_NOTIFICATIONS'视图中,我已成功创建了一个触发器和一个包,该包接受用户尝试插入视图并将其插入表中的内容.当用户尝试在视图上执行更新和删除功能时,"V_NOTIFICATIONS"触发器和包还会在表上执行更新和删除功能.

我在目前正在处理的项目中已经完成了许多视图,因为许多视图位于许多不同表的顶部,但是当尝试在此视图中插入记录时,我收到"ORA-01031:权限不足"错误.

我可以使用包中的相同代码直接插入表中,但不能直接插入到视图中.任何有关这方面的帮助将不胜感激.这是请求的代码:

视图:(当下面的UNION被注释掉时,包按预期运行)

CREATE OR REPLACE FORCE VIEW "MY_ADMIN"."V_NOTIFICATIONS" AS
  SELECT N_ID,
    NOTIFICATION_TYPE,
    CASE WHEN NOTIFICATION_DESC = 'C' THEN 'Copy' ELSE 'Send to' END NOTIFICATION_DESC,
    CASE WHEN CONTACT_TYPE = 'D' THEN 'Department' ELSE 'Contact' END CONTACT_TYPE,
    A.AU_USER_ID,
    A.CONTACT_NAME,
    D.DEPARTMENT_ID,
    D.DEPT_DESC
  FROM NOTIFICATIONS AN,
    (SELECT A1.AU_USER_ID,
            AU.FIRST_NAME || ' ' || AU.LAST_NAME CONTACT_NAME
       FROM APP_USERS_CONTACT_INFO A1,
            APPLICATION_USERS AU
      WHERE A1.AU_USER_ID = AU.USER_ID
    /*UNION
     SELECT 0,
            NULL
       FROM DUAL*/) A,
    (SELECT DEPARTMENT_ID, 
            DESCRIPTION DEPT_DESC
       FROM DEPARTMENTS
      UNION
     SELECT 0 DEPARTMENT_ID,
            NULL …
Run Code Online (Sandbox Code Playgroud)

oracle triggers insert package ora-01031

3
推荐指数
1
解决办法
9279
查看次数

标签 统计

insert ×1

ora-01031 ×1

oracle ×1

package ×1

triggers ×1