暂无图片
数据库INTEGER字段严重跳号,导致数据溢出
我来答
分享
只此无云
2020-05-11
数据库INTEGER字段严重跳号,导致数据溢出
暂无图片 10M

版本:Oracle 11.2.0.4.0-----64bit

问题:表中id列字段类型为integer

发现数据溢出,检查已达到该字段最大值21亿多。

统计该表,数据只有2000多万

发现一亿中只有几万或者几千条数据,哪位大佬指点下该怎么查找个解决这个问题?

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
只此无云

问题解决了:不是用的序列。是一个定时任务导致的,里面一个判断写错了,遇到错误就陷入死循环了。处理了就正常了。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
只此无云

SELECT COUNT(*)

FROM T_XXX_SSS

WHERE N_ID > 1800000000

ABND N_ID < 1900000000;

# 根据这样统计,发现实际只有不到8万条数据

# N_ID为主键列,字段类型为INGETER

暂无图片 评论
暂无图片 有用 0
打赏 0
你好我是李白

字段值插入数据时通过什么计算出来的呢?序列还是什么?

暂无图片 评论
暂无图片 有用 0
打赏 0
吾亦可往

首先,您可以尝试使用以下方法来查找数据:

  1. 使用SQL查询语句进行筛选。例如,如果您知道某些特定的条件,可以使用WHERE子句来过滤结果集。例如,如果您知道某个id大于1000万,则可以使用以下查询语句:
        

sql复制代码

SELECT * FROM table_name WHERE id > 10000000;

复制
  1. 使用索引来加速查询。如果您的表中包含id列,那么您可能需要创建一个索引来加快查询速度。例如,您可以使用以下语句创建一个B-tree索引:
        

sql复制代码

CREATE INDEX index_name ON table_name(id);

复制
  1. 检查您的应用程序代码是否正确处理了数据溢出的情况。如果您的应用程序在处理数据时出现了错误,可能会导致数据溢出。您可以检查您的代码并确保它正确地处理了这种情况。

如果以上方法都无法解决问题,您可能需要考虑重新设计您的数据库架构。例如,您可以考虑将id列的数据类型更改为更大的类型,例如bigint或decimal(n)。或者,您可以考虑使用分区表或其他技术来管理大量数据。

暂无图片 评论
暂无图片 有用 1
打赏 0
只此无云
题主
2023-07-11
谢谢
回答交流
Markdown


请输入正文
提交
相关推荐
为什么left join这种写法有时不会走索引,强制写hint也不走
回答 2
贴执行计划。
oracle日常管理监控emcc用的多吗,都用些什么工具呢
回答 1
你说的是em吗?我就用。结合awr。最好的还是恩墨的白求恩。
使用driving_set导致数据查不出来
回答 2
1、看看执行计划差别2、drivingsite,你拼写错了
AWR分析报告问题求助:ASM file metadata operation 这个后台等待怎么查原因
回答 1
要排查和解决Oracle数据库中的“ASMfilemetadataoperation”等待事件,可按照以下步骤进行:1.检查ASM实例的等待事件登录ASM实例,执行以下SQL查看当前等待事件:SELE
oracle dg 补丁版本不一致有影响吗
回答 1
可以的,你的主库和备库都是Oracle11.2.0.4版本,满足兼容性的要求。但是最好能够把主备数据库同时升级补丁,因为在Oracle数据库的DataGuard(DG)环境中,补丁版本的不一致可能会对
安装Oracle 10g的客户端,使用exp impd工具,Linux上oracle 10g有instantclient-tools这个工具包吗?
回答 1
已采纳
可以使用高版本的imp工具导入的。下载地址:https://www.oracle.com/database/technologies/instantclient/linuxx8664downloads
可拔插数据库PDB当中如何切换用户?
回答 2
已采纳
可以把pdb看理解是一个单独库,有些资源与CDB共享,可以直接用conn切换;你这个是好像是tnsnames中的FS3LCS别名解析的问题;可以查看下面的连接文章,温习下;https://www.mo
oracle数据库11.2.0.4版本,已经打过181016的补丁,现在想打201020的补丁,要不要先回滚181016的补丁?
回答 1
在Oracle数据库中,不需要先回滚已经安装的补丁才能安装新的补丁。您可以直接在已经打过181016的版本上安装201020补丁。通常情况下,Oracle的每一个补丁都是独立的,不依赖于之前安装的补丁
oracle 的SQL问题(关于Model字句取上一行的值)
回答 1
已采纳
暂无文字回复
Oracle数据库有漏洞一般都是怎么解决?
回答 5
如果在授权有效期内,可以去官网进行适当的打补丁!如果没授权那只能硬挺不打,或者花钱补上授权!
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~