iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MERGE开发中遇到的问题
  • 300
分享到

MERGE开发中遇到的问题

2024-04-02 19:04:59 300人浏览 泡泡鱼
摘要

在使用merge开发中遇到的问题。 有一个需求,需要从基础表中取数据放到目标表,如果目标表中已经有基础表的数据了,就修改目标表中的数据, 如果没有基础表中的数据就把基础表的数据插入到目标表中。因此用到m

在使用merge开发中遇到的问题。
有一个需求,需要从基础表中取数据放到目标表,如果目标表中已经有基础表的数据了,就修改目标表中的数据,
如果没有基础表中的数据就把基础表的数据插入到目标表中。因此用到merge完成这样一个操作

首先 建立基本环境
prompt PL/sql Developer import file
prompt Created on 2017年9月19日 by SAMSUNG
set feedback off
set define off
prompt Creating CL_BAS...
create table CL_BAS
(
  line_id                 VARCHAR2(20) not null,
  index_item_code         VARCHAR2(4) not null,
  worst_mansge_limit_nval NUMBER not null,
  best_manage_limit_nval  NUMBER not null,
  reg_dttm                DATE not null,
  reGISter_id             VARCHAR2(20) not null,
  update_dttm             DATE not null,
  updater_id              VARCHAR2(20) not null
)
;
comment on table CL_BAS
  is '???????';
comment on column CL_BAS.line_id
  is '?????';
comment on column CL_BAS.index_item_code
  is '??????';
comment on column CL_BAS.worst_mansge_limit_nval
  is '???????';
comment on column CL_BAS.best_manage_limit_nval
  is '???????';
comment on column CL_BAS.reg_dttm
  is '????';
comment on column CL_BAS.register_id
  is '??????';
comment on column CL_BAS.update_dttm
  is '????';
comment on column CL_BAS.updater_id
  is '??????';
alter table CL_BAS
  add constraint CL_BAS_PK primary key (LINE_ID, INDEX_ITEM_CODE);

prompt Creating LINE_BAS...
create table LINE_BAS
(
  line_id               VARCHAR2(20) not null,
  line_type_code        VARCHAR2(2) not null,
  line_name             VARCHAR2(100) not null,
  line_desc             VARCHAR2(500),
  ltdly_unit_start_days NUMBER not null,
  ltdly_unit_days       NUMBER not null,
  ltdly_unit_end_days   NUMBER not null,
  reg_dttm              DATE not null,
  register_id           VARCHAR2(20) not null,
  update_dttm           DATE not null,
  updater_id            VARCHAR2(20) not null
)
;
comment on table LINE_BAS
  is '????';
comment on column LINE_BAS.line_id
  is '?????';
comment on column LINE_BAS.line_type_code
  is '??????';
comment on column LINE_BAS.line_name
  is '????';
comment on column LINE_BAS.line_desc
  is '????';
comment on column LINE_BAS.ltdly_unit_start_days
  is '??????????';
comment on column LINE_BAS.ltdly_unit_days
  is '????????';
comment on column LINE_BAS.ltdly_unit_end_days
  is '?????????';
comment on column LINE_BAS.reg_dttm
  is '????';
comment on column LINE_BAS.register_id
  is '??????';
comment on column LINE_BAS.update_dttm
  is '????';
comment on column LINE_BAS.updater_id
  is '??????';
alter table LINE_BAS
  add constraint LINE_BAS_PK primary key (LINE_ID);

prompt Disabling triggers for CL_BAS...
alter table CL_BAS disable all triggers;
prompt Disabling triggers for LINE_BAS...
alter table LINE_BAS disable all triggers;
prompt Deleting LINE_BAS...
delete from LINE_BAS;
commit;
prompt Deleting CL_BAS...
delete from CL_BAS;
commit;
prompt Loading CL_BAS...
insert into CL_BAS (line_id, index_item_code, worst_mansge_limit_nval, best_manage_limit_nval, reg_dttm, register_id, update_dttm, updater_id)
values ('DFDF', '01', 1, 1, to_date('19-09-2017 12:50:57', 'dd-mm-yyyy hh34:mi:ss'), '1', to_date('19-09-2017 12:50:57', 'dd-mm-yyyy hh34:mi:ss'), '1');
commit;
prompt 1 records loaded
prompt Loading LINE_BAS...
insert into LINE_BAS (line_id, line_type_code, line_name, line_desc, ltdly_unit_start_days, ltdly_unit_days, ltdly_unit_end_days, reg_dttm, register_id, update_dttm, updater_id)
values ('DFDF', '02', 'dfdf', 'dfdf', 11, 1, 1, to_date('18-09-2017 14:33:24', 'dd-mm-yyyy hh34:mi:ss'), 'admin', to_date('18-09-2017 14:33:24', 'dd-mm-yyyy hh34:mi:ss'), 'admin');
insert into LINE_BAS (line_id, line_type_code, line_name, line_desc, ltdly_unit_start_days, ltdly_unit_days, ltdly_unit_end_days, reg_dttm, register_id, update_dttm, updater_id)
values ('FDFD', '01', 'dfdf', 'dfdf', 1, 1, 1, to_date('18-09-2017 14:33:24', 'dd-mm-yyyy hh34:mi:ss'), 'admin', to_date('18-09-2017 14:33:24', 'dd-mm-yyyy hh34:mi:ss'), 'admin');
insert into LINE_BAS (line_id, line_type_code, line_name, line_desc, ltdly_unit_start_days, ltdly_unit_days, ltdly_unit_end_days, reg_dttm, register_id, update_dttm, updater_id)
values ('FDFDF', '02', 'fdf', 'dfdf', 1, 1, 1, to_date('18-09-2017 14:33:42', 'dd-mm-yyyy hh34:mi:ss'), 'admin', to_date('18-09-2017 14:33:42', 'dd-mm-yyyy hh34:mi:ss'), 'admin');
insert into LINE_BAS (line_id, line_type_code, line_name, line_desc, ltdly_unit_start_days, ltdly_unit_days, ltdly_unit_end_days, reg_dttm, register_id, update_dttm, updater_id)
values ('FFFF', '04', 'ff', 'ff', 1, 1, 1, to_date('18-09-2017 16:26:23', 'dd-mm-yyyy hh34:mi:ss'), 'lu0.zhang', to_date('18-09-2017 16:26:23', 'dd-mm-yyyy hh34:mi:ss'), 'lu0.zhang');
commit;
prompt 4 records loaded
prompt Enabling triggers for CL_BAS...
alter table CL_BAS enable all triggers;
prompt Enabling triggers for LINE_BAS...
alter table LINE_BAS enable all triggers;
set feedback on
set define on
prompt Done.


执行merge时报错 违反主键约束
MERGE INTO CL_BAS T1
USING LINE_BAS T2  ON (T1.LINE_ID = T2.LINE_ID
                   AND T2.LINE_ID = 'DFDF')
WHEN MATCHED THEN
  UPDATE SET T1.WORST_MANSGE_LIMIT_NVAL = 1
WHEN NOT MATCHED THEN
  INSERT
    (LINE_ID,
     INDEX_ITEM_CODE,
     WORST_MANSGE_LIMIT_NVAL,
     BEST_MANAGE_LIMIT_NVAL,
     REG_DTTM,
     REGISTER_ID,
     UPDATE_DTTM,
     UPDATER_ID)
  VALUES
    ('101',
     '102',
     1,
     1,
     SYSDATE,
     11,
     SYSDATE,
     11);
    
说明MERGE是批量添加数据,特别在插入常量数据时,并不是只插入一条数据,而是根据USING选择出的所有数据向 目标表中
插入数据,因此插入的数据如果都是常量,必然导致重复插入的数据

您可能感兴趣的文档:

--结束END--

本文标题: MERGE开发中遇到的问题

本文链接: http://www.lsjlt.com/news/49825.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MERGE开发中遇到的问题
    在使用merge开发中遇到的问题。 有一个需求,需要从基础表中取数据放到目标表,如果目标表中已经有基础表的数据了,就修改目标表中的数据, 如果没有基础表中的数据就把基础表的数据插入到目标表中。因此用到m...
    99+
    2024-04-02
  • 【安卓APP开发】遇到的小问题
    目录 一、gradle不匹配二、 AS版本过低三、Manifest merger failed四、最新版本Android Studio无法添加 allprojects五、ActionBarAc...
    99+
    2023-09-18
    android gradle android studio
  • PHP开发中经常遇到的兼容性问题
    php 兼容性问题及解决之道:常见兼容性问题: 函数和常量更改、语法变化、函数库依赖性、扩展兼容性。解决之道: 检查 php 版本依赖性,使用现代语法和函数,管理函数库依赖性,测试代码在...
    99+
    2024-05-09
    php 兼容性
  • 小程序开发中遇到的问题有哪些
    这篇文章主要介绍小程序开发中遇到的问题有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!小程序面试题bindtap和catchtap的区别是什么?bind事件绑定不会阻止冒泡事件向上冒泡,catch事件绑定可以阻止...
    99+
    2023-06-14
  • 开发中经常遇到的JavaScript问题有哪些
    今天就跟大家聊聊有关开发中经常遇到的JavaScript问题有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。获取一...
    99+
    2024-04-02
  • Java开发者遇到的问题有哪些
    这篇文章主要讲解了“Java开发者遇到的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java开发者遇到的问题有哪些”吧!Java“死亡竞赛”中最难的问题让我们从最难啃的骨头开始吧...
    99+
    2023-06-17
  • Android小程序开发中遇到的问题有哪些
    本篇内容介绍了“Android小程序开发中遇到的问题有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!渲染列表时用 block 包裹<...
    99+
    2023-06-29
  • Web开发中遇到的Python问题及解决方法
    Web开发中遇到的Python问题及解决方法随着互联网的迅猛发展,Web开发变得越来越重要。而Python作为一种功能强大、易于学习的编程语言,成为了Web开发的首选语言之一。然而,在Python的Web开发过程中,会遇到各种各样的问题。本...
    99+
    2023-10-22
    解决方法 关键词:Web开发 Python问题
  • 如何解决小程序开发中遇到的问题
    这篇文章主要介绍了如何解决小程序开发中遇到的问题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。小程序面试题1. bindtap和catchtap的区别是什么?bind事件绑定...
    99+
    2023-06-14
  • 手机端Web开发中遇到的问题有哪些
    本篇文章给大家分享的是有关手机端Web开发中遇到的问题有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。 retina 图片兼容这...
    99+
    2024-04-02
  • django开发时遇到的跨域请求问题
    使用django进行web开发的时候会遇到一个问题,后端一切正常,但前端访问后端的时候会报错,错误如下: 遇到这种情况就是django的跨域问题。我们接下来对此进行解决: 1.使用pip命令安装django-cors-middlewar...
    99+
    2023-01-31
    django
  • Hibernate应用开发遇到的问题有哪些
    这篇文章主要讲解了“Hibernate应用开发遇到的问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Hibernate应用开发遇到的问题有哪些”吧!首先,学习任何一门新的框架首先要理...
    99+
    2023-06-17
  • android开发遇到的常见问题有哪些
    1. 兼容性问题:由于Android设备的碎片化,不同设备的硬件和软件规格不同,开发者需要对不同设备进行适配和测试,以确保应用在各种...
    99+
    2023-08-15
    android
  • 小程序开发过程中遇到的问题有哪些
    这篇文章主要介绍了小程序开发过程中遇到的问题有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇小程序开发过程中遇到的问题有哪些文章都会有所收获,下面我们一起来看看吧。1、确定需求问题虽然说小程序是可以作为服务...
    99+
    2023-06-27
  • 前端开发中经常遇到的css问题有哪些
    这篇文章主要介绍了前端开发中经常遇到的css问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、关于input的问题1.input可...
    99+
    2024-04-02
  • Angular 4.X开发实践中会遇到哪些问题
    这篇文章给大家分享的是有关Angular 4.X开发实践中会遇到哪些问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、使用ngIf或者ngSwitch出错在html文件中使用...
    99+
    2024-04-02
  • MongoDB技术开发中遇到的并发访问问题解决方案分析
    MongoDB技术开发中遇到的并发访问问题解决方案分析引言:在当今互联网时代,数据的规模和复杂性不断增长,使得数据库系统面临着越来越严峻的并发访问问题。尤其在大数据领域,MongoDB作为一款非常受欢迎的NoSQL数据库技术,也面临着并发访...
    99+
    2023-10-22
    解决方案 MongoDB 并发
  • Vue中使用Echarts5.0遇到的一些问题(vue-cli下开发)
    目录Vue使用Echarts5.0的一些问题问题解决方案一解决方案二为什么会出现这种情况?vue使用echarts 5.0“export ‘default&l...
    99+
    2022-11-13
    Vue使用Echarts5.0 使用Echarts5.0问题 Vue Echarts5.0
  • PHP开发中遇到的Windows PATH配置问题,如何解决?
    在进行PHP开发的过程中,经常会遇到Windows PATH配置问题,这对于初学者来说可能会比较棘手。在本文中,我们将探讨在Windows环境下,如何解决PHP开发中遇到的PATH配置问题。 一、什么是PATH变量? 在讲解如何解决PAT...
    99+
    2023-07-22
    开发技术 windows path
  • MongoDB技术开发中遇到的性能优化问题探究
    MongoDB技术开发中遇到的性能优化问题探究摘要:MongoDB是一种非常流行的NoSQL数据库,被广泛应用于各种开发项目中。然而,在实际开发中,我们偶尔会遇到性能问题,例如查询缓慢、写入延迟等。本文将探究一些常见的MongoDB性能优化...
    99+
    2023-10-22
    MongoDB性能优化 开发中的性能问题 性能问题探究
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作