insert into tele_success1(...)(select ...)

解决方案 »

  1.   

    我要把满足select条件的记录全部插入到tele_success1中,这两个表的字段一模一样
      

  2.   

    as ? 
    cut the "as"
      

  3.   

    insert into tele_success1 

     select * from tele_success where to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-23 19:00:00' and to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-24 09:00:00'
    );
      

  4.   

    还是不对,提示是无效字符  是不是我的select语句有问题呀
      

  5.   

    先在sql/plus中执行select语句看看能不能执行
      

  6.   

    条件
    to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-23 19:00:00' and to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-24 09:00:00'
    是不是有问题?
      

  7.   

    select * from tele_success where to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-23 19:00:00' and to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')<='2003-01-24 09:00:00';
    这个语句就出错,有问题吗?我看不出来问题在哪里?
      

  8.   

    不用括号
    insert into tele_success1 select * from tele_success where to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-23 19:00:00' and to_char(h323_connect_time,'yyyy-mm-dd hh24:mi:ss')>='2003-01-24 09:00:00';
      

  9.   

    这样写会更好:insert into tele_success1  select * from tele_success where h323_connect_time>=to_date('2003-01-23 19:00:00','yyyy-mm-dd hh24:mi:ss') and h323_connect_time<=to_date('2003-01-24 09:00:00','yyyy-mm-dd hh24:mi:ss');
      

  10.   

    SQL> desc tele_success1;
     名称                                      空?      类型
     ----------------------------------------- -------- -----------------
     LOG_ID                                    NOT NULL NUMBER
     NAS_IP_ADDRESS                                     VARCHAR2(15)
     CISCO_NAS_PORT                                     NUMBER
     CALLED_STATION_ID                                  VARCHAR2(32)
     CALLING_STATION_ID                                 VARCHAR2(32)
     ACCT_INPUT_OCTET                                   NUMBER
     ACCT_OUTPUT_OCTET                                  NUMBER
     ACCT_SESSION_TIME                                  NUMBER
     ACCT_SESSION_TIME_MINS                             NUMBER
     H323_REMOTE_ADDRESS                                VARCHAR2(15)
     H323_GW_ID                                         VARCHAR2(32)
     H323_SETUP_TIME                                    DATE
     H323_CONNECT_TIME                                  DATE
     H323_DISCONNECT_TIME                               DATE
     H323_DISCONNECT_CAUSE                              VARCHAR2(2)SQL> desc tele_success;
     名称                                      空?      类型
     ----------------------------------------- -------- -----------------
     LOG_ID                                    NOT NULL NUMBER
     NAS_IP_ADDRESS                                     VARCHAR2(15)
     CISCO_NAS_PORT                                     NUMBER
     CALLED_STATION_ID                                  VARCHAR2(32)
     CALLING_STATION_ID                                 VARCHAR2(32)
     ACCT_INPUT_OCTET                                   NUMBER
     ACCT_OUTPUT_OCTET                                  NUMBER
     ACCT_SESSION_TIME                                  NUMBER
     H323_REMOTE_ADDRESS                                VARCHAR2(15)
     H323_GW_ID                                         VARCHAR2(32)
     H323_SETUP_TIME                                    DATE
     H323_CONNECT_TIME                                  DATE
     H323_DISCONNECT_TIME                               DATE
     H323_DISCONNECT_CAUSE                              VARCHAR2(2)
     ACCT_SESSION_TIME_MINS                             NUMBER、
    这是我的两个表的数据结构
    提示出错:输入值对于日期格式不够长。
      

  11.   

    表結構好像不一樣呀,
    ???ACCT_SESSION_TIME_MINS                             NUMBER‘
    用insert into tabname select *
    好像要表結構一樣吧。??
    少了一個val呀。
    關注,共同學習。
      

  12.   

    这样吧,
    drop table tele_success1;
    create table tele_success1 as 
    select * from tele_success where h323_connect_time>=to_date('2003-01-23 19:00:00','yyyy-mm-dd hh24:mi:ss') and h323_connect_time<=to_date('2003-01-24 09:00:00','yyyy-mm-dd hh24:mi:ss');
      

  13.   

    如果表结构一样:insert into table1 select * from table2 where ...;
    不一样时:insert into table1(field1,...) select (field1,... )  from table2 where ...
      

  14.   

    从你DESC table来看,是字段的顺序不一致导致的。
    tele_success1
    ACCT_SESSION_TIME_MINS                             NUMBER
    对应的
    tele_success  顺序是
    H323_REMOTE_ADDRESS                                VARCHAR2(15)
    所以会出错。
    解决办法,在insert语句中按照tele_success  desc字段的顺序指定字段名
      

  15.   

    谢谢各位了 我按照beckhambobo的提供的方案做了,ok!谢谢了