版权声明:本文为博主原创文章,于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