所有记录值都是1?
insert into user(A, B,C,D)
SELECT 1, NULL,NULL,NULL
FROM DUAL
CONNECT BY ROWNUM<=150000
如果担心回滚段空间不足,可以将150000适当调小,分多次插入提交

解决方案 »

  1.   


    这个涉及到唯一约束。
    再次基础是那个能不能把 另一张表里的 一个字段的值赋值给user表里的B字段呢?
    如:xtyhxx表里的xtid字段 在上边这个insert语句中修改呢?
      

  2.   

    稍微调整下就好了
    你要的是各条记录的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
      

  3.   

    insert into user(A, B,C,D)
    SELECT rownum, xtid,NULL,NULL
    FROM xtyhxx
    where level<=150000;
      

  4.   

    用sql loader吧,很方便的,写个sql脚本就可以了。创建表:test_load, 
    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
      

  5.   

    insert into user(A, B,C,D)
    SELECT rownum, xtid,NULL,NULL
    FROM xtyhxx
    where level<=150000;
      

  6.   

    INSERT INTO USER(A,B,C,D)
    SELECT LEVEL, NULL,NULL,NULL
    FROM DUAL
    CONNECT BY LEVEL<=150000;
    连续在字段A中插入1~~150000条
      

  7.   

    简单,建立一个存储过程,然后使用job调用就ok了
    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调用,不影响性能。