在使用hibernate保存数据的时候,出现了could not get next sequence value这个错误,这个错误的意思就是找不到序列中的下一个值。解决这个问题具体按如下分析:

1.确定主键生成策略

找到相应的表的主键generator class类别,具体到相应的表的.hbm.xml文件中找,然后可以看看我的另一篇文章,判断它用到的主键策略类别是否需要指明sequence。如果需要指明sequence的话,你去.hbm.xml文件中查看它是否指明了使用的是哪个sequence.

查看generator class类别:

查看是否指明sequence:

2.如果指明了sequence

如果指明了sequence,就用sqlplus /as sysdba登录oracle数据库(sqlplus中登录),然后查看该用户下是否存在该指明的sequence。

select sequence_name,min_value,max_value,increment_by,last_number from all_sequences where sequence_owner='用户名'.

查看是否有该sequence,如果没有sequence,则需要到相应的用户下的创建该sequence。

但是,如果该数据表中已经有值的话,还是会出现上面那个问题,因为sequence的CURRVAL值可能不符合next value,因为新建的

sequence的CURRVAL值是0,而实际中,由于已经存在数据,所以可能需要CURRVAL的值为某个特定值开始。解决这个问题的方法就是先在数据库中不停的调用sequence.NEXTRVAL,使得它的CURRVAL值符合要求。

3.如果未指明sequence

如果没有指明sequence,就可以登录到相应的用户下新建一个sequence,然后再用这个新建的sequence指定该数据表。
如何该数据表中之前就存在数据,则该问题还是会出现,因为sequence的CURRVAL值可能不符合next value,因为新建的

sequence的CURRVAL值是0,而实际中,由于已经存在数据,所以可能需要CURRVAL的值为某个特定值开始。解决这个问题的方法就是先在数据库中不停的调用sequence.NEXTRVAL,使得它的CURRVAL值符合要求。

oracle数据库中could not get next sequence value的解决相关推荐

  1. Oracle数据库中序列(SEQUENCE)的用法详解

    http://database.51cto.com/art/201108/280742.htm 在Oracle数据库中,什么是序列呢?它的用途是什么?序列(SEQUENCE)其实是序列号生成器,可以为 ...

  2. 导出Windows服务器下的Oracle数据库并导入到Linux服务器下的Oracle数据库中

    2019独角兽企业重金招聘Python工程师标准>>> 说明: 1.Windows Oracle数据库 操作系统:Windows Server 2008 R2 IP地址:192.16 ...

  3. oracle中md5算法,oracle数据库中存储过程使用MD5算法加密

    一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...

  4. oracle中call用法,Oracle数据库中 call 和 exec的区别

    Oracle数据库中 call 和 exec的区别 今天发现了一个小东西,觉得很有意思,查找了一些资料,跟大家分享一下: 在sqlplus中: 在第三方提供的工具(如:plsqldev) 总结: ex ...

  5. oracle数据库序列码,oracle 数据库中的序列

    序列是什么,通俗点说,序列就是按照一定顺序进行排列,序列会自动给你递增,生成唯一的序列号: oracle数据库不同于sqlServer数据库,oracle数据库中是没有自增长列,使用的是sequenc ...

  6. Oracle数据库中的同义词,数据库链接和序列

    目录 1.同义词 (1)可视化方法创建同义词 (2)命令方式创建同义词 (3)删除同义词 2.数据库链接 (1)可视化方式创建 (2)使用命令方式 (3)为远程数据库的表创建同义词 (4)删除数据库链 ...

  7. 一起ORACLE数据库中数据查询结果不一致问题的排查过程

    一.问题描述 在某软件开发项目中,需要在ORACLE数据库中建立十张类型相同的员工信息表tb_employeeinfo0~tb_employeeinfo9,并建立向这十张表中插入数据的存储过程.ORA ...

  8. 批量插入数据库语句java_java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码)...

    java相关:MyBatis批量插入数据到Oracle数据库中的两种方式(实例代码) 发布于 2020-7-22| 复制链接 本文通过实例代码给大家分享了MyBatis批量插入数据到Oracle数据库 ...

  9. 如何从Oracle数据库中的表中获取列名(字段名)列表?

    如何从Oracle数据库中的表中获取列名(字段名)列表? 目录 如何从Oracle数据库中的表中获取列名(字段名)列表? #示例一 #示例二 示例三: #示例一 可以获取: table_name:表名 ...

最新文章

  1. vn.py 2.0.2 发布,全功能交易程序开发框架
  2. 开源论坛程序 vBulletin 被曝严重且详情不明的漏洞,请立即修复
  3. mysql去掉重复数据只保留一条,以及取分组后的一条数据
  4. 2016年9月16日-乔任梁逝世,陈乔恩发文悼念
  5. 网站被黑的10大原因
  6. ROS2初学者教程(Dashing和Eloquent)Windows
  7. Vue日历的编写,可显示周和月的模式(其中可以自定义日历里内容的显示)
  8. 2012年真的是世界末日吗?_全球关注
  9. IP-Guard如何注册
  10. java spring常见问题
  11. Error: This old version of 'S8051.DLL' is incompatibl 解决办法
  12. GDA 和logistic回归的联系
  13. 抖音最后一面,问我Java 是如何实现线程间通信的?
  14. 双数据率四线外设接口(Double Transfer Rate Quad Peripheral Interface, DTR QPI)
  15. Vue-Router路由重复点击报错
  16. 三相逆变器并联--下垂控制
  17. junction工具安装及简单使用
  18. 10天用Flutter撸了个高仿携程App,含小米、腾讯、阿里
  19. 红米1线刷救砖教程V5版(移动联通适用,线刷包永久有效)
  20. 高德地图获取行政区域以及中心点

热门文章

  1. mysql中delete from in子查询删除失败
  2. 徐扬:互联网营销下的移动营销
  3. mac下配置android sdk环境 安装eclipse
  4. CS-- WebService、 windowsService
  5. EBGP邻居抖动问题
  6. 使用 Caddy 替代 Nginx,全站升级 https,配置更加简单
  7. 前端图片压缩上传(纯js的质量压缩,非长宽压缩)
  8. OSPF——DR及BDR详解
  9. android将字符串中间几个字用*代替,【Android技巧之相见恨晚系列】-TextView/string.xml冷门小技巧:占位转换符%1$s、%1$d等的用法...
  10. net core 3.1 跨域 Cors 找不到 “Access-Control-Allow-Origin”