ASP+Oracle 9i(SQL*PLUS) 新增数据出错问题

zhonggan 2003-10-09 11:59:33
SQL语句为:insert into BZ(ID,MC,FGHID) values(Seq_BZ.NextVal,'总公司dd','940')
在ASP WEB页运行出错
在SQL*PLUS运行结果如下:
SQL> insert into BZ(ID,MC,FGHID) values(Seq_BZ.NextVal,'总公司dd','940')
2 /
insert into BZ(ID,MC,FGHID) values(Seq_BZ.NextVal,'总公司dd','940')
*
ERROR 位于第 1 行:
ORA-00001: 违反唯一约束条件 (POWER.PK_BZ)
SQL>

其中表名为:BZ
索引表(唯一约束字段):PK_BZ(ID)
序列:SEQ_BZ

怎样改才不会有上面的错误?
...全文
25 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhonggan 2003-10-09
  • 打赏
  • 举报
回复
为什么我给不了分啊?
贴子回复次数大于跟给分次数

????????
boy002 2003-10-09
  • 打赏
  • 举报
回复
NOMAXVALUE 的最大值为2^27
zhonggan 2003-10-09
  • 打赏
  • 举报
回复
给分了
还是要感谢上面的几位大哥
这个问题要是没解决的话项目无法验收啊~~~
感谢~~~~~~~~
zhonggan 2003-10-09
  • 打赏
  • 举报
回复
太感谢了,能留个QQ给我吗?
上面的句还有一点问题:
SQL> CREATE SEQUENCE seq_BZ
2 INCREMENT BY 1
3 START WITH 541
4 MAXVALUE NOMAXVALUE
5 NOCACHE
6 NOCYCLE;
MAXVALUE NOMAXVALUE
*
ERROR 位于第 4 行:
ORA-01722: 无效数字
我把这句去掉后就可以了
boy002 2003-10-09
  • 打赏
  • 举报
回复
START WITH 设序列初始值
boy002 2003-10-09
  • 打赏
  • 举报
回复
先查出你的LAST_NUMBER的值data,然后重建 seq_BZ

SELECT SEQUENCE_NAME,LAST_VALUE FROM seq_BZ

DROP SEQUENCE seq_BZ;

CREATE SEQUENCE seq_BZ
INCREMENT BY 1
START WITH data --数值
MAXVALUE NOMAXVALUE
NOCACHE
NOCYCLE;
zhonggan 2003-10-09
  • 打赏
  • 举报
回复
怎样设序列初始值(用SQL*PLUS中代码设)
LGQDUCKY 2003-10-09
  • 打赏
  • 举报
回复
我觉得是你的数据库ID已经存在,而且Seq_BZ.NextVal分别的序列
在数据库已经存在,你应该MAX(ID)+1取到这个值,然后把序列的初始化
值设置为这个数。
zhonggan 2003-10-09
  • 打赏
  • 举报
回复
现在的问题是我不能直接到库中去改,只能用SQL*PLUS来改,
能不能给我代码?
建立序列时“给予最大值”的代码?

maohaisheng 2003-10-09
  • 打赏
  • 举报
回复
你的序列发生器产生了重复的值,可能是设置了循环使用导致的

察看表中数据,把序列删除,重新建立一个给予最大值的序列

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧