快速定位 ORA-01772_无效数字 的数据


       版权声明:本文为博主原创文章,于2023年7月6日首发于CSDN,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u011046671/article/details/131578422

一、基础环境

       操作系统:Windows 或 Linux
       数据库版本:Oracle Database 11.2.0.1.0 及以上版本

二、适用场景

       当我们使用 insert into select 语句迁移数据的时候,两个表的某个字段类型不一致,select 语句中使用了to_number() 函数进行了格式转换,在迁移过程中报:ORA-01772:无效数字 的错误。由于数据量巨大,无法使用肉眼进行查找定位,因此我们可以使用正则表达式进行检测。

二、操作步骤

       使用以下sql进行检查。
       column_name :字段名,需要替换2处
       table_name :表名,需要替换1处

-- 正则表达式:^(-?\d+)(.\d+)?$ 用于匹配:浮点数(包含正负号、小数点、数字0-9)
select column_name from table_name t where not regexp_like(column_name, '^(-?\d+)(.\d+)?$');

       版权声明:本文为博主原创文章,于2023年7月6日首发于CSDN,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/u011046671/article/details/131578422

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值