ORACLE如何批量插入(Insert)

 更新时间:2023年12月04日 09:52:20   作者:Immature_7  
这篇文章主要介绍了ORACLE如何批量插入(Insert),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

ORACLE批量插入(Insert)

Oracle批量插入语句与其他数据库不同,下面列出不同业务需求的插入

假设有一张表Student

-- 学生表
create table Student(
  id   Varchar2(11) primary key,
  name varchar2(32) not null,
  sex  varchar2(3)  not null,
  age  smallint,
  tel  varchar(16)
)

注意:

其中[]中代表可选;<>代表必须;table_column的数量必须和column_value一致,并且数据类型要相匹配

1. 单条自定义记录插入

命令格式:

insert into table <tableName>[(<table_column1>,<table_column2>...)] 
values([<column_value1>,<column_value2>...])

示例:

insertinto Student(id, name, sex, age, tel) values (‘13', ‘jack', ‘男', 13, ‘13345674567')

2. 多条自定义记录插入

命令格式1:

insert all
    into <tableName>[(<table_column1>,<table_column2>...)] 
    values([<column_value1>,<column_value2>...]) 
	[into <tableName>[(<table_column1>,<table_column2>...)] 
	values([<column_value1>,<column_value2>...])]...
select  <table_value1>[,<table_value2>...] from dual;

示例:

insert all into Student(id, name, sex, age, tel)
    into Student(id, name, sex, age, tel) values ('12', 'jack1', '男', 12, '13345674567' )
    into Student(id, name, sex, age, tel) values ('13', 'jack2', '男', 13, '13345674567')
    select '14', 'jack', '男', 13, '13345674567' from dual;

注意: 我也不知道为什么要加select from dual语句,反正不加就报错 

命令格式2:

 insert into <tableName>[(<table_column1>,<table_column2>...)] 
 select [<column_value1>,<column_value2>...] from dual
   [ union select [<column_value1>,<column_value2>...] from dual ]...

示例:

insert into student(id, name, sex, age, tel)
  select '10' , 'ldh', '男', 19, '14445674567' from  dual
  union select '11' , 'zxy', '男', 20, '13333674567' from dual
  union select '12', 'zxc', '男', 21, '15555674567' from dual

命令格式3:

 insert into <tableName1>[(<table_column1>,<table_column2>...)] 
   select [<column_value1>,<column_value2>...] from <tableName2> [where [...]]
   union [ select [<column_value1>,<column_value2>...] from <tableName2> [where [...] ]]

示例:

insert into student(id, name, sex, age, tel)
  select (id-1)||'' as id, name, sex, age, tel from Student where id='11'
  union select id||'1' as id, name, sex, age, tel from Student where id like '1%'
  union select id||'2' as id, name, sex, age, tel from Student where id like '%1' and id/3 != 0

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Oracle 11g服务器与客户端卸载、安装全过程

    Oracle 11g服务器与客户端卸载、安装全过程

    Oracle 11g服务器与客户端的完全卸载方式与前些版本有了改变,下面是具体的操作过程,感兴趣的朋友可以参考下哈
    2013-06-06
  • Oracle多表级联更新详解

    Oracle多表级联更新详解

    我们在平时的工作中可能遇到过,多表级联更新,我也在网上看到过不少的方法,但是使用这些方法一般都没成功过,所以今天我给大家介绍一种稍微麻烦的方法,有需要的朋友可以参考下
    2013-07-07
  • Oracle数据库安装教程并实现公网远程连接(内网穿透)

    Oracle数据库安装教程并实现公网远程连接(内网穿透)

    Oracle数据库是用于处理数据存储及大量数据计算的常用数据库,下面这篇文章主要给大家介绍了关于Oracle数据库安装教程并实现公网远程连接(内网穿透)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Oracle 数据库中创建合理的数据库索引

    Oracle 数据库中创建合理的数据库索引

    在Oracle数据库中,创建索引虽然比较简单。但是要合理的创建索引则比较困难了。
    2009-06-06
  • CentOS7下Oracle19c rpm安装过程

    CentOS7下Oracle19c rpm安装过程

    这篇文章主要介绍了CentOS7下Oracle19c rpm安装过程,包含环境配置、依赖安装问题,对Oracle19c rpm安装相关知识感兴趣的朋友一起看看吧
    2021-07-07
  • ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法

    ORACLE DATAGUARD中手工处理日志v$archive_GAP的方法

    从9i以后,oracle dataguard 备库一般都不需要手工处理丢失的日志,FAL自动会帮我们处理,本文主要通过个案例来讲下手工处理丢失的日志的方法。
    2014-08-08
  • PLSQL developer12汉化过程

    PLSQL developer12汉化过程

    今天小编就为大家分享一篇关于PLSQL developer12汉化过程的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Oracle SQL tuning 数据库优化步骤分享(图文教程)

    Oracle SQL tuning 数据库优化步骤分享(图文教程)

    SQL Turning 是Quest公司出品的Quest Central软件中的一个工具。Quest Central是一款集成化、图形化、跨平台的数据库管理解决方案,可以同时管理 Oracle、DB2 和 SQL server 数据库
    2013-08-08
  • Oracle判断指定列是否全部为数字的sql语句

    Oracle判断指定列是否全部为数字的sql语句

    判断指定列是否全部为数字在实际应用过程中很常见,下面是具体的示例语句,由此需求的朋友可以借鉴下,希望对大家有所帮助
    2013-07-07
  • Linux环境下Oracle数据库重启详细步骤

    Linux环境下Oracle数据库重启详细步骤

    这篇文章主要给大家介绍了关于Linux环境下Oracle数据库重启的详细步骤,oracle在linux下重启,有多种方式可选择,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06

最新评论