将选择数据获取到游标中,对其进行修改,然后在同一表中插入行类型游标数据

时间:2018-10-29 15:02:28

标签: mysql cursor bulkinsert insert-into rowtype

我想复制前一行数据,修改几列并插入同一表中,但不想使用,因为列列表插入选择很大。 下面是我的方块:

`
DECLARE

CURSOR CUR_ACC_SCH IS

`SELECT *
  FROM TB_ACCOUNT_SCH
 WHERE COMP_NAME in ('INT', 'PRINCIPAL')
   and ACCOUNT_NUMBER = '0001111111111'
   and SCHEDULE_DUE_DATE = '10-DEC-2010';`

ROW_ACC_SCH CUR_ACC_SCH%ROWTYPE;

BEGIN

OPEN CUR_ACC_SCH; FETCH CUR_ACC_SCH INTO ROW_ACC_SCH; CLOSE CUR_ACC_SCH;

 ROW_ACC_SCH.SCHEDULE_ST_DATE     := '10-DEC-2010';
 ROW_ACC_SCH.SCHEDULE_DUE_DATE    := '30-DEC-2010';
 ROW_ACC_SCH.AMOUNT_DUE           := 0;
 ROW_ACC_SCH.AMOUNT_SETTLED       := 0;
 ROW_ACC_SCH.ACCRUED_AMOUNT       := null;
 ROW_ACC_SCH.SCHEDULE_LINKAGE     := '30-DEC-2010';
 ROW_ACC_SCH.LAST_PMNT_VALUE_DATE := null;
 ROW_ACC_SCH.SCHEDULE_NO          := 26;

 INSERT INTO TB_ACCOUNT_SCH VALUES ROW_ACC_SCH;
 --commit;
 END;

/`

问题是我在ACCOUNT_NUMBER,BRANCH_CODE,COMP_NAME,SCHEDULE_DUE_DATE,SCHEDULE_ST_DATE列上具有唯一键索引。 光标选择2行。要复制和修改,然后插入这2行。 系统应复制游标行数据并使用comp_name的初始化列对其进行修改,然后插入以避免唯一键冲突。 在上面的块中,我初始化的列希望对两行都进行更新。

,我要插入的新行在comp_name中仅具有唯一性。在上面的块中,只有1行数据被插入,而不是其他comp_name。我不想初始化所有记录,因为再次插入select的目的出现在图片中。我想插入单个集合名称,如下所示 “将INSERT INTO TB_ACCOUNT_SCH VALUES ROW_ACC_SCH;”

0 个答案:

没有答案