Oracle复制行记录到同一个表(两种写法)

Oracle复制行记录到同一个表(两种写法)

通过循环,判断记录是否存在,不存在时插入数据

插入数据时,可以更新插入数据指定字段的值

请根据实际项目需要改写SQL

DECLARE
  CURSOR dept_cursor IS
    SELECT *
      FROM  table_A
     WHERE ID = '4879D2EFEDB448C4910EC973EAE3B9CE';
  recordnum VARCHAR2(50); --定义变量
BEGIN
  --检查记录是否存在
  SELECT COUNT(1)
    INTO recordnum
    FROM  table_A  t
   WHERE t.id= 'BC92F9700F2C44D7A3CC150F45BA90A4'
         AND t.DATETIME_CREATED = TRUNC(SYSDATE);
  FOR row_data IN dept_cursor LOOP
  --更新id 和创建时间
    row_data.id              := sys_guid();
    row_data.DATETIME_CREATED := trunc(SYSDATE);
    --判断记录,不存在则插入
    IF (recordnum = 0)
    THEN
      INSERT INTO  table_A VALUES row_data;
      COMMIT;
    ELSE
      dbms_output.put_line('记录已存在,插入失败');
    END IF;
  END LOOP;
END;
insert into table_a(id,create_time,update_time,create_user) select sys_guid(),sysdate,update_time,create_user from table_a where id='123456';
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值