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数据库中,并且几分钟内完成,大约有60万条。
网上有人说了,你可以循环insert然后插入几千条以后Commit一次,我靠,你自己试试看!! 如果没试过就不要误导别人好吧。
还有人说了,Oracle根本不支持一次多条插入,我靠,你咋不说自己学艺不精呢?
现在给大家介绍一个小技巧,话说在Oracle里有一个很奇特的“表”,名叫Dual。我们就要利用这个Dual来做文章,
首先,你知道 select '1' from dual 是啥结果吗? 对了,结果就是返回1。
其次,你知道
select '1' from dual
union
select '2' from dual
是啥结果吗? 对鸟,结果是
1
2
那么,最关键的地方来了,
insert into 表名 (字段1)
select '1' from dual
union
select '2' from dual
那么这一次就插入了两条数据。当然,如果全字段插入 那个(字段1)还可以省略掉。
最后的实践证明,如果循环60万次Insert,一个小时也执行不完(当然有可能是机器太烂),而拼成1000条Select再插入一次,插入60万条的时间是20分钟,而拼成5000条Select再Insert一次,插入60万条数据的时间是12分钟。
发表评论
-
(ZZ)Oracle约束的关键字Enable/Disable/Validate/Novalidate
2015-09-16 11:34 7731 组合特性说明 Validate ... -
快速创建分区表
2013-08-16 16:03 827create table test_partition pa ... -
自动创建分区
2013-08-14 17:46 0vv_Result := masamk.fun_add_ta ... -
Oracle 游标使用全解
2013-07-16 14:43 646-- 声明游标;CURSOR cursor_name IS ... -
(ZT)ROW_NUMBER() OVER函数的基本用法用法
2013-06-19 11:14 724转载 http://www.cnblogs.com/ice ... -
(转) ORACLE GROUPING函数的使用
2013-06-05 09:05 13495GROUPING函数可以接受一列,返回0或者1。如果列值为空 ... -
(转)oracle中LAG()和LEAD()等分析统计函数的用法(统计月增长率)
2013-05-25 18:10 729LAG()和LEAD()统计函数可以在一次查询中取出同一字段 ... -
PL/SQL 快捷键设置
2013-05-23 09:28 896se = select sf = select * fro ... -
分区表数据部分清空
2013-05-20 16:55 772alter table masadw.tb_dw_gc_gr ... -
用于理解join的例子
2013-05-17 13:48 711--第1组-- 这个相当于全关联,只显示两个都存 ... -
Oracle_AWR_报告分析实例讲解
2013-03-27 10:57 1363WORKLOAD REPOSITORY report f ... -
SYS用户登录的方法
2013-03-26 16:54 1096情况一:使用sqlplus登录正常输入用户名的口令,就会报错, ... -
Oracle更改默认端口
2013-03-25 15:24 934启动监听器[oracle@localhost ~]$ lsn ... -
利用oradata进行数据恢复
2013-03-20 18:07 972之前因为现场对方工程师的原因,把oracle其他文件夹都给格 ... -
Windows版Oracle完全卸载
2013-03-20 18:01 7601、停止服务 打开“服务”,然后停止所 ... -
Oracle硬拷贝数据迁移
2013-03-13 15:54 838Windows2003之前崩溃了,之后想恢复数据,将oracl ... -
Oracle中如何执行带返回参数的存储过程
2013-03-06 18:54 6786declare v_return_value num ... -
(ZZ)oracle与mysql的批量插入
2013-01-29 16:34 736oracle与mysql的批量插入 oracle 批量插入 ... -
(ZZ)Oracle Union/Union all 的排序问题
2012-09-03 14:14 1466Oracle 通过在索引列上使用UNION/UNION A ... -
存储过程中创建表时 ORA-01031: insufficient privileges的解决方法
2012-08-31 09:04 1163执行某个存储过程时报错:ORA-01031: insuffic ...
相关推荐
此脚本介绍了使用过程插入多条(最多100000000)数据的方法,是oracle入门的宝贵资源,在sqlplus中使用@+路径+文件名来执行;如:@E:\procedure.sql
当所有的插入语句都已添加到批处理队列后,我们只需调用`executeBatch()`一次即可执行所有的插入操作。这比单独执行每个`executeUpdate()`要高效得多。 ### 三、注意事项 - **事务管理**:确保在执行批量插入前...
我想往数据库插入多条数据时,使用了如下语句: insert into 表1 (字段1,字段2) values (1,2),(2,3),(3,4); 这条语句在mysql中执行的话,语法一点毛病都没有,但是,在oracle上执行一直报错: ORA-00933: SQL ...
此方法将大量数据一次性加载到PL/SQL表变量中,然后逐条插入。 七、文件导入 在实际操作中,可能需要从外部文件(如`.sql`文件)导入数据。比如`ts_code_20110316.sql`和`ts_msg_20110316.sql`这样的文件,通常包含...
oracle 批量插入数据存储过程。亲测好用。支持 plsql ,toad,等数据库分析软件。主要包括变量的定义,循环及游标的使用等, 亲测好用
- 考虑到性能和效率,对于大量数据的插入或更新操作,可以采用批处理方式,一次执行多条记录的操作,减少数据库交互次数,提高整体性能。 总之,向Oracle数据库插入或更新Clob大段文本是一个涉及SQL语句构建、参数...
根据给定文件的信息,“Oracle插入大量数据”的主题围绕着几种有效的策略展开,旨在提升Oracle数据库在大数据量场景下的性能表现。 ### 高速存储设备的应用 首先提及的是采用高速的存储设备来提升读写能力。EMC和...
这样可以在一次网络往返中执行多条SQL语句,减少网络开销。 - **创建PreparedStatement**: 通过`PreparedStatement pst = (PreparedStatement) con.prepareStatement(sql.toString());`创建PreparedStatement对象,...
批量插入数据到Oracle数据库通常比单条插入更有效率,因为它减少了与数据库的交互次数,降低了网络延迟,并减少了系统资源的占用。以下是一些关键知识点: 1. **PL/SQL**:Oracle数据库的主要编程语言是PL/SQL,它...
【标题】"Kettle生成1亿条数据导入Oracle"是一个关于使用开源ETL工具Kettle进行大数据处理的实践案例。Kettle,又称Pentaho Data Integration(PDI),是一款强大的数据转换和集成工具,能够有效地处理和转换大量...
在Oracle中,我们可以创建一个存储过程来接收数组参数,然后一次性处理多个插入操作。以下是一个简单的示例: ```cpp // C++代码调用存储过程 void batchInsert(const vector<string>& data) { // 连接数据库 ...
在Oracle数据库中,进行多表关联的批量插入、批量更新和批量删除操作是常见的数据库管理任务,尤其是在处理大量数据时,这些操作能显著提高效率并减少资源消耗。本文将详细探讨这三个方面,并通过实例代码来展示如何...
### ORACLE 多表查询与数据修改 #### 学习目标 - **熟悉三个或四个表的连接查询**:在实际应用中,我们往往需要从多个表中获取数据以完成复杂的业务逻辑。通过本节的学习,您将能够掌握如何利用Oracle数据库进行多...
通过`ROWNUM`函数和子查询的方式,进一步保证了即使有多条记录在上述列上完全相同,也只会有一条被插入到临时表中。 3. **删除原表并重命名临时表**:最后,通过`DROP TABLE tlinkman;`和`ALTER TABLE tlinkman2 ...
1. **事务日志管理**:SQL Server默认情况下会对每一次插入操作进行事务日志记录,这会增加I/O负担。 2. **索引更新**:每次插入新记录时,SQL Server都需要更新相关的索引,对于大量数据插入而言,这将显著降低性能...
首先,Oracle插入数据的基本语法是使用INSERT INTO语句,指定表名和需要插入的列及对应的值。例如: ```sql INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...); ``` 在提供的示例中,我们看到如何向名为EMP...
流处理允许数据在内存中以较小的批次处理,而不是一次性加载所有数据,这样可以减少对内存的需求。在Java中,`java.util.stream` API可以实现这种处理方式,将数据流从Oracle读取,按需处理并写入到MySQL。 **数据...
1. **批处理**:对于大量数据的插入,可以考虑将多条`INSERT`语句合并为单条或多条`INSERT ... SELECT`语句,以减少网络传输次数和提高效率。 2. **并行处理**:如果条件允许,可以尝试使用多个会话并行插入数据,...
java快速插入千万级数据,亲测91秒插入1700万数据!!!