所有记录值都是1?
insert into user(A, B,C,D)
SELECT 1, NULL,NULL,NULL
FROM DUAL
CONNECT BY ROWNUM<=150000
如果担心回滚段空间不足,可以将150000适当调小,分多次插入提交
insert into user(A, B,C,D)
SELECT 1, NULL,NULL,NULL
FROM DUAL
CONNECT BY ROWNUM<=150000
如果担心回滚段空间不足,可以将150000适当调小,分多次插入提交
这个涉及到唯一约束。
再次基础是那个能不能把 另一张表里的 一个字段的值赋值给user表里的B字段呢?
如:xtyhxx表里的xtid字段 在上边这个insert语句中修改呢?
你要的是各条记录的A分别为1、2、3、4?把select 后面A字段对应的1改为rownum即可
insert into user(A, B,C,D)
SELECT rownum, xtid,NULL,NULL
FROM xtyhxx
where ROWNUM<=150000
SELECT rownum, xtid,NULL,NULL
FROM xtyhxx
where level<=150000;
sql>create table test_load(id number(10),uname varchar2(20), phone varchar2(20));
控制文件:d:/loader.ctl
load data
infile 'd:/datafile.txt'
append into table test_load
fields terminated by "," optionally enclosed by '"'
( id, uname, phone ) 数据文件:D:/datafile.txt
001,"david",0551-1234567
002,"dave",0551-7654311
sqlloader命令:
SQL>sqlldr 'sys/admin AS SYSDBA' control=D:/loader.ctl log=d:/a.log
SQL*Loader: Release 10.2.0.1.0 - Production on 星期四 7月 2 09:40:42 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
达到提交点 - 逻辑记录计数 1
达到提交点 - 逻辑记录计数 2
SELECT rownum, xtid,NULL,NULL
FROM xtyhxx
where level<=150000;
SELECT LEVEL, NULL,NULL,NULL
FROM DUAL
CONNECT BY LEVEL<=150000;
连续在字段A中插入1~~150000条
procedure SP_Test is
begin
insert into user
(A, B, C, D)
SELECT rownum, xtid, NULL, NULL FROM xtyhxx where level <= 150000;
COMMIT;
end SP_Test;call SP_Test();
再使用job调用,不影响性能。