自在猫先生 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日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效