字段如下:
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
8 个解决方案
#1
create table t as
select levle id from dual connect by levle<=20000000
mac_adress 地址怎么加。。。
select levle id from dual connect by levle<=20000000
mac_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
比如: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
10000一次
批量插入
批量插入
#4
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 地址自动增加的函数
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 地址自动增加的函数
#5
求高手???
#6
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)
#7
用Pl/sql直接导入EXCEL数据
#8
有一款在数据的工具,datafactory,可以轻松解决你的问题。
1、用datafactory连接你的数据库
2、id可以直接用序列,从1开始。 mac_adress利用字符串加数字:’B0:EE:20:02:00:‘+00(前面是字符串,后面是数字)
2000万条数据,两个字段,要不了多少时间。
1、用datafactory连接你的数据库
2、id可以直接用序列,从1开始。 mac_adress利用字符串加数字:’B0:EE:20:02:00:‘+00(前面是字符串,后面是数字)
2000万条数据,两个字段,要不了多少时间。
#1
create table t as
select levle id from dual connect by levle<=20000000
mac_adress 地址怎么加。。。
select levle id from dual connect by levle<=20000000
mac_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
比如: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
10000一次
批量插入
批量插入
#4
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 地址自动增加的函数
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 地址自动增加的函数
#5
求高手???
#6
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)
#7
用Pl/sql直接导入EXCEL数据
#8
有一款在数据的工具,datafactory,可以轻松解决你的问题。
1、用datafactory连接你的数据库
2、id可以直接用序列,从1开始。 mac_adress利用字符串加数字:’B0:EE:20:02:00:‘+00(前面是字符串,后面是数字)
2000万条数据,两个字段,要不了多少时间。
1、用datafactory连接你的数据库
2、id可以直接用序列,从1开始。 mac_adress利用字符串加数字:’B0:EE:20:02:00:‘+00(前面是字符串,后面是数字)
2000万条数据,两个字段,要不了多少时间。