用这条语句
insert into  table2(USERID,Name,Accounts,MobileNo) select seq_p.nextval,Name,MobileNo,MobileNo from table1;

解决方案 »

  1.   

    我马试试,谢谢 LGQDUCKY(飘)
      

  2.   

    不行呀,它怎么提示我:
    The following error has occurred:ORA-00911: 无效字符
      

  3.   

    这两个表之间要有一个公共字段,否则第一次导过去了,第二次也不能同步。
    所以最好能保证table1(id)和table2(userid)能够有一个对应关系。
    可以采用楼上的那种方法,但是还有更好的方法(前提是id和userid有对应关系)
    采用merge命令
    merge into table2 t2
    using table1 t1
    on(t2.useid=t1.id)
      when matched on
       update set .....
      when not matched on 
       insert values(.......);
      

  4.   

    ORA-00911 invalid characterCause: Special characters are valid only in certain places. If special characters other than $, _, and # are used in a name and the name is not enclosed in double quotation s ("), this message will be issued. One exception to this rule is for database names; in this case, double quotes are stripped out and ignored.Action: Remove the invalid character from the statement or enclose the object name in double quotation s.
      

  5.   

    正确无误

    insert into  table2 (USERID,Name,ACCOUNTS,MobileNo) 
        select seq_p.nextval,substr(Name,1,30),
        substr(MobileNo,1,50),substr(MobileNo,1,11) 
        from table1;
      

  6.   

    用过程生成insert 语句:
    Create Procedure SPGenInsertSQL 
     @TableName Varchar(256) ,
     @Where     nVarchar(1000) = ''
    As
    Begin
    --  Print @TableName , @Where
      Declare @Sql varchar(8000)
      Declare @SqlValues varchar(8000)
      Set @Sql =' ('
      Set @SqlValues = 'values (''+'  Select @SqlValues = @SqlValues + Cols + ' + '','' + ' ,@Sql = @Sql + '[' + Name + '],' 
        From 
            (Select Case 
                      When xtype in (48,52,56,59,60,62,104,106,108,122,127)                                
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else ' + 'Cast('+ Name + ' As Varchar)'+' End'
                      When xtype in (58,61)
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else '+''''''''' + ' + 'Cast('+ Name +' As Varchar)'+ '+'''''''''+' End'
              When xtype in (167)
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else '+''''''''' + ' + 'Replace('+ Name+','''''''','''''''''''')' + '+'''''''''+' End'
                      When xtype in (231)
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else '+'''N'''''' + ' + 'Replace('+ Name+','''''''','''''''''''')' + '+'''''''''+' End'
                      When xtype in (175)
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else '+''''''''' + ' + 'Cast(Replace('+ Name+','''''''','''''''''''') As Char(' + Cast(length As Varchar)  + '))+'''''''''+' End'
                      When xtype in (239)
                           Then 'Case When '+ Name +' Is Null Then ''NULL'' Else '+'''N'''''' + ' + 'Cast(Replace('+ Name+','''''''','''''''''''') As Char(' + Cast(length As Varchar)  + '))+'''''''''+' End'
                      Else '''NULL'''
                    End As Cols,Name
                 From SysColumns  
                    Where Id = Object_Id(@TableName) ) T   Set @Sql ='Select ''INSERT INTO ['+ @TableName + ']' + Left(@Sql,Len(@Sql) - 1) + ') ' + Left(@SqlValues,Len(@SqlValues) - 4) + ')'' From '+ @TableName + '' + ' ' + @Where + ''
    --  Print @Sql
      Exec (@Sql)
    End