ORACLE的多插入是否有限制?
INSERT ALL
INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
.......
INTO t (col1, col2, col3) VALUES ('val1_1', 'val1_2', 'val1_3')
SELECT * FROM DUAL;
我正在使用此语句将多行插入表中。ORACLE的多插入是否有限制?
有时我插入正确,即使我给它几条线。我甚至插入了10100行!
但有时,它说这个
ORA-24335: cannot support more than 1000 columns
任何想法?
是的,是有一定限度:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/statements_9014.htm
对多表插入
多表插入限制受到以下限制:
...
- 在一个多表插入,所有的insert_into_clause s不能组合以指定超过999个目标列。
...
你将在一个表中,因此它可以在没有多表插入完成。例如,通过使用UNION ALL:
insert into t (col1, col2, col3)
select 'val1_1', 'val1_2', 'val1_3' from dual
union all
select 'val1_1', 'val1_2', 'val1_3' from dual
...
插入单个表格时,限制似乎不适用。至少在11g中,我总共插入了10K列,没有问题。 – yktoo 2016-06-07 12:20:51
我试图插入50.000行有一个插入的所有语句,但我的编辑器(Oracle SQL Developer中)无法处理它。我没有得到任何错误,但几秒钟后它没有回应。然后我尝试从500开始插入更少的行。将近5000行的一行插入所有语句,我的编辑器再次失败。我也没有看到任何文件限制。然后我尝试了另一种插入大量行的方法。我将整个50.000行语句拆分为1000行“插入所有”语句(使用小型宏脚本)。所有插入成功完成,总执行时间合理。
与插入所有语句相比,sql loader确实会为插入太多的行带来更好的结果。
发布这是一个单独的问题 – 2018-01-31 13:35:39
我使用了“oracle多插入限制”......找不到这种插入的任何限制 – Mouhcine 2014-12-03 00:21:03
您是否谷歌错误? http://*.com/a/8062870/1394393(根据我的经验,Oracle确实模糊了你所拥有的问题。) – jpmc26 2014-12-03 00:23:08
你提到你插入了10,100行**,但是你得到的ORA是关于**列** – benji 2014-12-03 02:38:08