各位大侠,小弟想给oracle 的一张表中批量插入2000万条数据,求方法。字段如下:
         id, mac_adress其中id 是自动加一的, mac_adress 也是自动往上加的,
例如:       第一条记录   1, B0:EE:20:02:00:00
      第二条记录   1, B0:EE:20:02:00:01
      第三条记录   1, B0:EE:20:02:00:02

解决方案 »

  1.   

    create table t as
    select levle id from dual connect by levle<=20000000mac_adress 地址怎么加
      

  2.   

    mac_adress 加一的,遇到F,把该位变为0, 上一位,加一。比如:B0:EE:20:02:00:00  + 1 = B0:EE:20:02:00:01比如:B0:EE:20:02:00:F0  + 1 = B0:EE:20:02:01:00
      

  3.   

    char str[50] = "B0:CE:18:02:00:00";IncreamentMac(str); int IncreamentMac(char* pcSrc, int iStep =1)
    {
    int iLen = 0;
    if (NULL == pcSrc || 17 != (iLen = strlen(pcSrc)))
    {
    return -1;
    } int i = iLen - 1;
    while(-1 != i)
    {
    if ('9' == pcSrc[i])
    {
    pcSrc[i] = 'a' -1;
    } if (('f' == pcSrc[i]) || (':' == pcSrc[i]))
    {
    if ('f' == pcSrc[i])
    {
    if (0 == i)
    {
    //break;
    return -2;
    } pcSrc[i] = '0';
    i--;
    }
    else
    {
    //pcSrc[i] = '0';
    i--;
    }

    else
    {
    pcSrc[i]++;
    break;
    }
    } return 0;
    }这个是mac 地址自动增加的函数
      

  4.   


    for n in 1.。 1000 loop
     insert into
     values (seq.nextval,pin_fun(to_char(n+seq.nextval,'XX') ));
    end loop;n=B0:EE:20:02:00:00换成10进制。
    pin_fun就是一个函数将字符串每两位加:
    如substr(aa,1,2)||';'||substr(aa,3,2)  
      

  5.   

    用Pl/sql直接导入EXCEL数据
      

  6.   

    有一款在数据的工具,datafactory,可以轻松解决你的问题。
    1、用datafactory连接你的数据库
    2、id可以直接用序列,从1开始。 mac_adress利用字符串加数字:’B0:EE:20:02:00:‘+00(前面是字符串,后面是数字)
    2000万条数据,两个字段,要不了多少时间。