• oracle的批量插入sql


    insert into persons 
    (id_p, lastname , firstName, city )
    values
    (200,'haha' , 'deng' , 'shenzhen'),
    (201,'haha2' , 'deng' , 'GD'),
    (202,'haha3' , 'deng' , 'Beijing');

    这是mysql的插入语句。
    但是我们在oracle中是报错的,语句l

    那怎么办呢

    也许熟悉oracle数据库的可能知道从oracle9i版本以后,可以使用一种方法即:

    "INSERT ALL INTO  a表
    VALUES(各个值)  
    INTO a表 VALUES (其它值) 
    INTO a表 VALUES(其它值) .... 再跟一个SELECT 语句"。

    例如

    INSERT
    ALL
    INTO
    d5000.ac_terminal_connect_info
    (
    id ,
    feeder_id,
    esn ,
    name ,
    description
    )
    VALUES
    (
    (
    select
    id
    from
    d5000.dms_terminal_info
    where
    esn_id = '025BHN6RJB504521' limit 1
    )
    ,
    (
    select
    feeder_id
    from
    d5000.dms_terminal_info
    where
    esn_id = '025BHN6RJB504521' limit 1
    )
    ,
    '025BHN6RJB504521',
    '大厂地税局TTU-华为六合管理' ,
    ''
    )

    INTO
    d5000.ac_terminal_connect_info
    (
    id ,
    feeder_id,
    esn ,
    name ,
    description
    )
    VALUES
    (
    (
    select
    id
    from
    d5000.dms_terminal_info
    where
    esn_id = '025BHN6RJB503985' limit 1
    )
    ,
    (
    select
    feeder_id
    from
    d5000.dms_terminal_info
    where
    esn_id = '025BHN6RJB503985' limit 1
    )
    ,
    '025BHN6RJB503985' ,
    '淳溪东甘#3配变TTU-华为高淳管理',
    ''
    )
    SELECT 1 FROM DUAL

    这样就可以啦!显示两条插入成功过。

    后边跟的SELECT 语句我们可以从虚拟表里查如 SELECT 1 FROM DUAL。注意后边跟的SELECT语句可以随意,不过不是把它SELECT出来的内容插入前边的表里,而是起到前边的多个数据每次插入多少行的作用,这个多少行是和后边跟的SELECT语句查出来几条而定的,如后边的跟的SELECT 语句查出了15条记录,那么前边的"INSERT ALL INTO  a表 VALUES(各个值1)  INTO a表 VALUES (其它值2) INTO a表 VALUES(其它值3)"就会先插入值1对应的各个字段插入15条记录,然后插入值2各个对应的字段15条记录,然后插入值3对应的各个字段15条记录,也就是说有点按列插入的意思。

    我们要的是批量插入多个VALUES这样的一条记录,所以后边的SELECT 语句只要能查出一条记录就行,建议大家后边用SELECT 1 FROM DUAL

    
    
  • 相关阅读:
    笔记
    BlangenOA项目展示(附源码)
    笔记截至20190406
    ASP.NET MVC 使用过滤器需要注意
    单例模式和HttpContext线程内唯一
    C#线程/进程同步(lock、Mutex、Semaphore)
    Web标准
    JavaScript 放置在文档最后面可以使页面加载速度更快
    GUI 面板实现 (解决了关闭事件)
    GUI 实现多个窗口 (使用封装特性)
  • 原文地址:https://www.cnblogs.com/jiangshengxiang/p/10281329.html
Copyright © 2020-2023  润新知