SQL> SELECT COUNT(*) FROM PART
  2  WHERE PRIMARY_LOC_ID='FINAL'
  3  /  COUNT(*)
----------
      6145SQL> INSERT INTO BAO_TEMP
  2  SELECT ID , PRODUCT_CODE FROM PART
  3  WHERE PRIMARY_LOC_ID='FINAL'
  4  /建立了 6145 列目前歷時: 00:00:00.35我插入6145條記錄隻需要0.35秒!樓主你最好把具體 的語句貼出來大家一起看看

解决方案 »

  1.   

    是不是你的存储过程有问题?
    我的存储过程如下:
    create or replace procedure proc_a is
    begin
      insert into a select * from a;
    end proc_a;下面是我执行的结果:
    SQL> select count(*) from a;  COUNT(*)
    ----------
         32768已用时间:  00: 00: 00.00
    SQL> exec proc_aPL/SQL 过程已成功完成。已用时间:  00: 00: 00.02
    SQL> insert into a select * from a;已创建65536行。已用时间:  00: 00: 00.04
    SQL> select count(*) from a;  COUNT(*)                                                                      
    ----------                                                                      
        131072                                                                      已用时间:  00: 00: 00.00
    SQL> spool off
      

  2.   

    是这样的我再insert语句的之前之后都用dbms输出了当前的系统时间发现时间间隔就是这么长具体语句可能要明天才能写出来存储过程当中涉及到了一些逻辑的判断,但是我认为不会是那些代码造成的
      

  3.   

    IF V_DRCRF = '0' THEN
    IF I_RECIPACC IS NULL THEN
    IF I_SAMT IS NULL AND I_BAMT IS NULL THEN
    DBMS_OUTPUT.PUT_LINE(to_char(sysdate,'hh:mi:ss'));  
    DBMS_OUTPUT.PUT_LINE(V_ACCNO);
    DBMS_OUTPUT.PUT_LINE(V_BEGINDATE);  
    DBMS_OUTPUT.PUT_LINE(V_ENDDATE);
    DBMS_OUTPUT.PUT_LINE(I_SAMT);
    DBMS_OUTPUT.PUT_LINE(I_BAMT);
    insert into rpt_nechdtl_result
    select * from RPT_NECHDTL
    WHERE ACCNO = V_ACCNO
    AND BUSIDATE BETWEEN V_BEGINDATE AND V_ENDDATE
    AND DRCRF >= '0'
    AND AMOUNT >= I_SAMT
    AND AMOUNT <= I_BAMT
    --ORDER BY TIMESTMP DESC
    ;
    DBMS_OUTPUT.PUT_LINE(to_char(sysdate,'hh:mi:ss'));  
      

  4.   

    SQL> execute PACKAGE_EBANK_NECHDTL1.PROC_EBANK_query('4000022909200226237','2004
    0301','20040330','0','-100000000000','100000000000');
    08:45:41
    1212121212121212121
    01-MAR-04
    30-MAR-04
    -100000000000
    100000000000
    08:47:57PL/SQL procedure successfully completed.Elapsed: 00:02:16.95
      

  5.   

    SQL> insert into rpt_nechdtl_result
            select *   2  from RPT_NECHDTL
                    WH  3  ERE ACCNO = '1212121212121212121'
                    AN  4  D BUSIDATE BETWEEN to_date('20040301','yyyymmdd')  AND to
    _date('20040330','yyyymmdd')
      5             AND DRCRF >= '0'
                    A  6  ND AMOUNT >= '-100000000000'
                    AN  7  D AMOUNT <= '100000000000'
              8     ;8 rows created.Elapsed: 00:00:00.01
      

  6.   

    你传入存储过程的两个时间参数(varchar型)在存储过程中是如何转换为date型的?
      

  7.   

    将表BAO_TEMP删除后,在重新建立看看。
      

  8.   

    传到里面之后是用v_begindate:=to_date(i_begindate,'yyyymmdd');来做的转换
    enddate也是一样
      

  9.   

    请问qiyousyc,BAO_TEMP表是在哪里??sys用户下吗?