方法一: declare iExists int; begin select count(*) into iExists from表 where 条件; if iExists=0 then insert into 表 ( ... ) values ( ... ); end if; end; 声明iExists变量,通过条件在表中找出有重复的数量,如果没有,就把数据插入表中 方法二:

方法一:

declare

iExists int;

begin

select count(*) into iExists from 表 where 条件;

if iExists=0 then

insert into 表 ( ... ) values ( ... );

end if;

end;

声明iExists变量,通过条件在表中找出有重复的数量,如果没有,就把数据插入表中

方法二:

merge into 目标表

using 源表 | (select 语句)

on ( 条件 )

when matched then update set 列=值

delete where ( 列=值 )

when not matched then insert ( 列... ) values ( 值... );

利用merge 方法,匹配的更新或删除,不匹配的插入数据

oracle不支持insert into ... not exists 方法

---------------------------------------------------------------------

MSSQLServer 方法:

if not exists(select * from 表 where 条件... ) insert into 表 ( 列 ... ) values ( 值 ... );

或者

declare @iExists int

select @iExists=COUNT(*) from 表 where 条件... ;

if @iExists=0

begin

insert into 表 ( 列 ...) values ( 值 ... );

end;

----------------------------------------------------------------------------

注:插入的先后不同,会影响结果 (Oracle 与MSSQL不一样)

1、

merge into student

using (select * from dual)

on (student.stno=1 and (student.stname='aaaa' or student.stname is null))

when not matched then

insert (stno,stname,birth )

values (1,'aaaa',sysdate);

2、

merge into student

using (select * from dual)

on (student.stno=1 and (student.stname='' or student.stname is null))

when not matched then

insert (stno,stname,birth )

values (1,'',sysdate);

oracle有条件插入数据,Oracle有条件地插入数据相关推荐

  1. oracle数据库insert into,oracle中insert into用法 oracle中insert如何带条件添加数据?

    oracle insert into 脚本怎么写 INSE INTO BOOK(bookid,name,price) VALUES('100123','oracle ',54); 或者 INSE IN ...

  2. oracle into多个变量,Oracle中merge into的使用:该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据....

    该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSERT 关键词,ORACLE 10g 做了如下改动. 1,ins ...

  3. ORACLE——ROWNUM解析(使用ROWNUM大于条件,无法得到任何查询结果)

    标题:Oracle中的rownum不能使用大于>的问题 转自网络,稍做修改: 一.对rownum的说明 关于Oracle 的 rownum 问题,很多资料都说不支持SQL语句中的"&g ...

  4. ORACLE因为字符集不同,进行中文条件查询,查询结果为空

    在使用C#进行SQL语言或者ASP.NET进行ORACLE数据查询:当查询条件有中文存在时,因为数据服务端和客户端/本机的字符集不同,数据表存在数据,但查询不出来数据.但使用连接Oracle工具相同的 ...

  5. 表间数据复制--SELECT表中的数据插入到新的表中(ORACLE,MSSQL)

    表间数据复制--SELECT表中的数据插入到新的表中 --在Oracle 9i中 CREATE TABLE scott.test AS (SELECT DISTINCT empno,ename,hir ...

  6. oracle磁盘使用率很高,oracle安装磁盘使用率100%导致数据插入等操作报错

    环境: ORACLE安装目录:   C盘(50G  使用率100%) 表空间DBF文件目录:E盘(100G 使用率20%) 问题: C盘100%后,清理了几次磁盘,但是导入历史数据(量较大)仍然插入数 ...

  7. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  8. oracle中如何加字母,Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字...

    本文主要向大家介绍了Oracle数据库之oracle数据库表插入数据的时候如何产生一个字母+数字,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. Oracle 语句中" ...

  9. 快速向表中插入大量数据Oracle中append与Nologgin的作用

    当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候,oracle需要生成 redo log和undo log;此时最好的解决办法是用insert, 并且将表设置为n ...

最新文章

  1. RTL Schematic 与 Technology Schematic的区别?
  2. 领取Virmach免费Minecraft主机搭建“我的世界”服务器
  3. 关于不能远程连接Linux中Mysql数据库的问题
  4. vue怎么使用eval_Webpack 构建工具手把手教你怎么用
  5. 【后缀自动机】SPOJ 1812-LCSII
  6. 软件开发工程师证书有用吗_bim工程师证书有用吗 含金量怎么样?
  7. C语言的math相关的函数
  8. JUC队列-LinkedBlockingDeque(三)
  9. flink网页端提交pr-修改文档报错
  10. 经典排序算法(11)——计数排序算法详解
  11. 星际通讯+基于区块链的价值共享互联网即时通讯应用平台
  12. 告诉各位为如何学习linux系统
  13. cisco初级随堂笔记1
  14. 题解-Codeforces671D Roads in Yusland
  15. mt4 指标 涨跌幅 颜色k线_通达信K线波段操盘指标公式
  16. 【2019百度之星初赛三1002=HDU6714】最短路 2(spfa+思维)
  17. 手游和平精英透视教学
  18. 扩展欧几里得算法的证明
  19. vux页面转换html,Vue 初学者使用 Vux 前端开发框架 - 文章教程
  20. 开源项目——小Q聊天机器人V1.2

热门文章

  1. ​苏宁回应股权质押给淘宝:正常合作;苹果App Store被越狱商店指控垄断;Docker 20.10.0发布|极客日报...
  2. 求求了!让 Python 的热搜消失吧!!
  3. 闲鱼靠什么支撑起万亿的交易规模?
  4. 11 个问题,帮你彻底搞懂工业互联网
  5. AI 开发者不容错过的 20 个机器学习和数据科学网站
  6. C++ 过去的这一年
  7. “Null 是价值十亿美元的错误!”
  8. 从 Android 10 开始,以甜点命名的“传统”结束了!
  9. 9 大技巧拯救你的编程面试!
  10. 告别大妈的灵魂拷问,Python 教你轻松完成垃圾分类!