怎么样才能把40W条记录,快速插入到一临时表中。 

解决方案 »

  1.   

    这40w 条记录是什么样的?是在oracle 表中
    还是文本?excle ?
      

  2.   

    如果是要构造:
    SQL> begin
      2  for i in 1..4000000 loop
      3  insert into t22 values(i);
      4  end loop;
      5  end;
      6  /PL/SQL procedure successfully completed.如果数据库里是已经存在的数据,
    那直接create table xxx  as select xxx from xxx ;如果是excel那种外部的数据,
    用sqloader工具。
      

  3.   

    是从oracle物理表,从有2千万条记录的表中,取40w条记录插入到一临时表中。
      

  4.   

    create table xxx as select xxx from xxx where col=''
      

  5.   

    insert into tempTable
    select * from tableName where xxxx=xx;
    commit;
      

  6.   

    insert /*+ APPEND */ into tempTable
      

  7.   

    那就是用
    insert into 表名 ...  as select...
      

  8.   

     就用 SQL语句就行啊  如果要定时执行 就写个过程 用动态SQL 建个JOB就是了
      

  9.   


    不错,lz你这里所提的临时表,是指的应用上的临时表,还是oracle里提及的临时表,如果是前者,可以加上append的hint。
      

  10.   


    应用上的临时表是不是指的一张物理表作为临时表,而oracle里提及的临时表,是否指的是下面这样?
    with temp_table_name
    as
    (select ....)
      

  11.   

    大量数据插入表 用下面的语句快,LZ试试看
    --直接装载方式
    INSERT /*+APPEND*/ INTO t1 SELECT * from t2;
      

  12.   

    with table as ??? 
      

  13.   

    学习了,我也有一个这样的操作.30-40W条记录查询的可能有点慢我本来用的方式是for loop  用cursor的方式insert.这和上面所说的
    INSERT /*+APPEND*/ INTO t1 SELECT * from t2;这一种方式比较哪里一种会快一点呢,明天去公司试下午
      

  14.   

    /*+APPEND*/  更快,既然是临时表,没必要搞日志,正适用。
      

  15.   

     INSERT /*+APPEND */ INTO employee (empno, ename, sal, deptno)
     SELECT empno, ename, sal, deptno FROM emp
     WHERE deptno = 20;
      

  16.   

    append会加快效率?append貌似只是让你检索前面几条数据的时候速度快点,找到就返回结果,但是全部检索不能提升效率的
      

  17.   

    INSERT /*+APPEND */ INTO employee (empno, ename, sal, deptno)
             SELECT /*+ parallel(emp)*/ empno, ename, sal, deptno FROM emp
             WHERE deptno = 20;