首页新闻找找看学习计划

c#生成大量随机数导入oracle数据库,违反唯一索引

0
悬赏园豆:20 [待解决问题]
create table tb_Text
(
P_Id number(30) primary key,
rand nvarchar2(20) unique,
pCode nvarchar2(20) unique

)

insert into tb_Text(rand,pCode, values('" + rand+ "','" + pCode+ "')
pCode是唯一的,我在生成的时候会有重复,程序中一直提示ORA-00001: 违反唯一约束条件 (SCOTT.SYS_C0012033),这个约束是pCode的,怎么让它忽略这个继续完成其他行的插入呢?
雪jenny的主页 雪jenny | 初学一级 | 园豆:182
提问于:2016-11-29 17:36
< >
分享
所有回答(4)
0

try catch

花飘水流兮 | 园豆:10341 (专家六级) | 2016-11-29 17:50

试过,用了之后遇到重复的它给终止插入了,

支持(0) 反对(0) 雪jenny | 园豆:182 (初学一级) | 2016-11-30 09:42

@雪jenny: 不要怀疑机器

支持(0) 反对(0) 花飘水流兮 | 园豆:10341 (专家六级) | 2016-11-30 10:26
0

又说是唯一的,那你在生成的时候就不应该有重复

GDOUJKZZ | 园豆:313 (菜鸟二级) | 2016-11-29 21:14

我用的Guid,生成大量的数据怎么着都会有一些是重复的吧,

支持(0) 反对(0) 雪jenny | 园豆:182 (初学一级) | 2016-11-30 09:51
0

用exists先判断是否存在,再插入数据 

http://blog.csdn.net/hollboy/article/details/7550171

胜天半招 | 园豆:686 (小虾三级) | 2016-11-30 09:36
0

我比较好奇的是,你代码中怎么产生这个guid的。照道理guid应该是不会重复的(100年之内,这个地球上基本碰不到同样gudi的人)。

因为他是mac+纳秒时间+软硬件信息,产生的。

另一个问题,你尝试新增,是每次都会报guid重复吗?如果是的话,那一定是你的代码问题。

 

 

正怒月神 | 园豆:214 (菜鸟二级) | 2016-12-02 10:06

for (int i = 0; i < num; i++) { rand = string.Join("", stringChars.OrderBy(d => Guid.NewGuid()).Take(len)); pCode = string.Join("", numChars.OrderBy(d => Guid.NewGuid()).Take(len3)); string str = "data source=orcl1;user=scott;password=tiger;"; OracleConnection conn = new OracleConnection(str); String sql = "insert into tb_Rand(rand,pCode) values('" + rand + "','" + pCode+ "')"; OracleCommand cmd = new OracleCommand(sql, conn); conn.Open(); rows = cmd.ExecuteNonQuery(); conn.Close(); }

支持(0) 反对(0) 雪jenny | 园豆:182 (初学一级) | 2016-12-02 10:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册