自在猫先生 2022-05-17 16:32 采纳率: 62.9%
浏览 36
已结题

Oracle 数据库触发器新增数据异常,无法正常的新增数据至数据库

问题遇到的现象和发生背景

触发器异常无法新增数据,写死的也无法新增和关联表取值的数据也是无法新增

运行结果及报错内容
CREATE OR REPLACE TRIGGER EB.T_EB_TR_SYS_DN_PENDING_HIS
  AFTER INSERT  ON EB.T_EB_SYS_DN_PENDING_H
  FOR EACH ROW
DECLARE
 V_URL VARCHAR2(200);
BEGIN

   

    SELECT T.LOOKUP_VALUE_NAME INTO V_URL FROM T_EB_DB_LOOKUP_VALUE T WHERE T.LOOKUP_TYPE_CODE='VMD_TO_PARA_URL' AND T.LOOKUP_VALUE_CODE='1';

    INSERT INTO T_IS_WF_HIS_INFO
      (PENDING_ID,
       CREATED_DATE,
       LAST_UPDATED_BY,
       LAST_UPDATED_TIME,
       HANDLE_TEXT,
       PROCESS_STATUS,
       PROCESS_RUNTIME_ID,
       SYSTEM_ID,
       PROCESS_PENDING_ID,
       CREATED_BY,
       PEND_AUTOR,
       TOPIC,
       PROCESS_MODULE_ID,
       PROCESS_KIND_GUID,
       PROCESS_KIND_NAME,
       OWNER,
       OWNER_NAME,
       LAST_AUTOR,
       INITIATE_DATETIME,
       PROCESS_NAME,
       CURRENT_STEP_ID,
       CURRENT_STEP_NAME,
       URL,
       MAIN_VER,
       SUB_VER,
       ACTIVE_DATE,
       MAXAPPROVALHOURS,
       ACTIVE_MONTH,
       MAXAPPROVALDATE,
       CREATED_TIME,
       PENDING_TYPE   
       )
       SELECT :NEW.PENDING_ID,
       SYSTIMESTAMP,
        :NEW.USER_ID,
        :NEW.LAST_UPDATED_DATE,
        :NEW.REMARK,
        1,
        :NEW.LINK_BU_ID,
        'VMD',
        :NEW.PENDING_ID,
        :NEW.CREATOR,
        :NEW.USER_ID,
        WN.WF_NODE_NAME TOPIC,
        DP.WF_ID,
        SW.WF_ID,
        SW.WF_NAME,
        DP.CREATOR,
        U2.EMP_NAME,
        DP.CREATOR,
        DP.CREATED_DATE,
        SW.WF_NAME,
        WN.WF_NODE_ID,
        WN.WF_NODE_NAME,
        V_URL,
        NULL,
        NULL,
        DP.CREATED_DATE,
        0,
        NULL,
        NULL,
        DP.CREATED_DATE,
        1
        FROM T_IS_WF_HIS_INFO WI 
        INNER JOIN EB.T_EB_SYS_DN_PENDING DP ON WI.PENDING_ID=DP.PENDING_ID
        INNER JOIN BOM.T_EAP_SYS_USER U2 ON DP.CREATOR=U2.USER_ID 
        INNER JOIN EB.T_EB_SYS_DN_WF_NODE WN ON DP.WF_NODE_CODE=WN.WF_NODE_CODE 
        INNER JOIN EB.T_EB_SYS_WF SW ON DP.WF_ID=SW.WF_ID;  
    
END;


我的解答思路和尝试过的方法

根据表查询看是否存在关联关系

我想要达到的结果

新增成功 不管是写死的还是关联的数据

  • 写回答

1条回答 默认 最新

  • 於黾 2022-05-17 16:43
    关注

    不要foreach row
    你这是每次insert一条,都去表里面循环取每条数据
    你直接取new.列名就行了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月17日

悬赏问题

  • ¥15 关于c++外部库文件宏的问题,求解
  • ¥15 office打开卡退(新电脑重装office系统后)
  • ¥300 FLUENT 火箭发动机燃烧EDC仿真
  • ¥15 【Hadoop 问题】Hadoop编译所遇问题hadoop-common: make failed with error code 2
  • ¥15 vb6.0+webbrowser无法加载某个网页求解
  • ¥15 RPA财务机器人采购付款流程
  • ¥15 计算机图形多边形及三次样条曲线绘制
  • ¥15 根据protues画的图用keil写程序
  • ¥200 如何使用postGis实现最短领规划?
  • ¥15 pyinstaller打包错误