oracle的insert语句(oracle insert语句用法)
大家好,关于oracle的insert语句很多朋友都还不太明白,今天小编就来为大家分享关于oracle insert语句用法的知识,希望对各位有所帮助!
怎样在sql中用insert语句往表中插入多行
如果数据很多的话建议可以用别的方法特别是数据量比较多的时候
ORACLE有一个SQLLODER功能
1.生成百万级的sql,保存SQL文件为getobject.sql
select a.owner||',"'||a.object_name||'",'||a.object_id||','||to_char(a.created,'yyyy-mm-dd hh24:mi:ss')||','||a.status
from dba_objects a,(select rownum from dual connect by rownum<= 20);
2.sql数据转换成数据文件,保存脚本为call.sql
set echo off
set term off
set trimout on
set trimspool on
set pagesize 0
set feedback off
set heading off
spool c:\getobject.csv
@c:\getobject.sql
set spool off
set heading on
set feedback on
set trimspool off
set trimout off
set term on
set echo on
注释:
set colsep'';//-域输出分隔符
set echo off;//显示start启动的脚本中的每个sql命令,缺省为on
set echo on//设置运行命令是是否显示语句
set feedback on;//设置显示“已选择XX行”
set feedback off;//回显本次sql命令处理的记录条数,缺省为on
set heading off;//输出域标题,缺省为on
set pagesize 0;//输出每页行数,缺省为24,为了避免分页,可设定为0。
set linesize 80;//输出一行字符个数,缺省为80
set numwidth 12;//输出number类型域长度,缺省为10
set termout off;//显示脚本中的命令的执行结果,缺省为on
set trimout on;//去除标准输出每行的拖尾空格,缺省为off
set trimspool on;//去除重定向(spool)输出每行的拖尾空格,缺省为off
set serveroutput on;//设置允许显示输出类似dbms_output
set timing on;//设置显示“已用时间:XXXX”
set autotrace on-;//设置允许对执行的sql进行分析
set verify off//可以关闭和打开提示确认信息old 1和new 1的显示.
3.运行call.sql生成数据文件
sqlplus hxadmin/secret as sysdba;
@c:\call.sql
4.初始化环境,创建导入表OBjects
create table OBJECTS
(
OWNER VARCHAR2(50),
OBJECT_NAME VARCHAR2(50),
OBJECT_ID NUMBER,
STATUS VARCHAR2(10),
CREATED DATE
)
5.生成导入控制文件,保存控制文件为ldr_object.ctl
LOAD DATA
INFILE getobject.csv
TRUNCATE INTO TABLE OBJECTS
FIELDS TERMINATED BY"," OPTIONALLY ENCLOSED BY'"' TRAILING NULLCOLS
(OWNER,
OBJECT_NAME,
OBJECT_ID,
CREATED date'yyyy-mm-dd hh24:mi:ss',
STATUS)
6.执行sqlldr命令
C:> sqlldr hxadmin/secret control= ldr_object.ctl direct= true
7.查看ldr_object.log日志文件
这个例子是我自己做的一个100W行的数据插入也只要10几秒。希望你能用到。
Oracle insert all用法简介
insert all是oracle中用于批量写数据的
现在直接通过例子学习一下,比较简单直观,例子来自《收获,不止SQL优化》一书
环境准备
创建两张测试表,不用写数据
然后演示一下insert all的用法
无条件写数据的情况
有条件写数据的情况
insert first
insert first情况,介绍一下insert first的用法,insert first用法和insert all类似,区别的是insert first多了筛选的步骤,简单来说就是和insert all一样,符合条件的同样会写数据,不过已经存在数据了,insert first是不会写入的,而insert all是会出现重复数据的情况
pivoting insert
然后再演示一下pivoting insert的情况,pivoting insert可以说是insert all的一直特殊情况,不过oracle官方还是区分出来,pivoting insert可以翻译为旋转写入,名称的不重要,看一下例子就懂了
环境准备
按照条件进行写数据
oracle数据库一次性插入多条值
在操作Oracle数据库时,一次性插入多条值并非通过传统的INSERT语句完成,而借助于Union All功能,结合Dual表实现批量插入,提高效率。
Dual表是一个特殊的Oracle表,它只包含一行数据,每列的值都是预定义的。使用Dual表进行批量数据插入的方法如下:
例如,使用SQL语句
insert into表名(字段1,字段2)
select'一','二' from dual
union all
select'三','四' from dual
union all
select'五','六' from dual
union all
select'七','八' from dual
union all
select'九','十' from dual
可以将多条数据一次性插入到目标表中。
此外,从CSV文件导入数据至Oracle数据库,可利用SQL的LOAD命令,实现几分钟内完成大量数据的导入。通过预先编写脚本,配置好连接参数、表结构与CSV文件路径,可大幅提高数据导入效率。
利用Dual表进行批量数据插入,不仅简化了SQL语句的编写,还提高了操作的效率,尤其适用于需要快速插入大量数据的场景。
oracle的insert语句的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于oracle insert语句用法、oracle的insert语句的信息别忘了在本站进行查找哦。