一、存在表A和表B,都包含字段user_no,但数据类型不一致,如下:

create table A (

  user_id varchar2(20),

  user_no number(12,0),

  xxx

);

create table B (

  user_name varchar2(60),

  user_no varchar2(20),

  xxx

);

二、现有某项业务需要用到A.user_id和B.user_name,通过user_no来做关联查询,如下:

select A.user_id,B.user_name from A,B where A.user_no=B.user_no;

select A.user_id,B.user_name from A,B where A.user_no=B.user_no and A.user_no='1234567';

三、问题:

1.当A.user_no和B.user_no全部为数字类型时,以上脚本是没有问题的;

2.当B.user_no的某一个或多个值包含非数字字符时,该脚本会报:ORA-01722: 无效数字

四、原因:

深层次原因待后续分析。

五、反思:

1.最根本的,应该避免不同表同一字段的数据类型不一致;

2.关联查询时增加数据类型转换,如:select A.user_id,B.user_name from A,B where to_char(A.user_no)=B.user_no;

3.如果项目中已经存在这种情况,应该确保varchar2类型的字段不会包含非数字字符。

转载于:https://www.cnblogs.com/yuhebin/p/10949683.html

Oracle关联查询-数据类型不一致问题 ORA-01722: 无效数字相关推荐

  1. 讨厌麻烦的ora 01722无效数字

    webservice开发过程中,数据库由原来的oracle改为现在的sql server.然后重新调试,结果报出ora 01722无效数字的错误. 由于连接oracle数据库的时候并没有问题,所以一开 ...

  2. oracle连接连表查询时,两表的连接字段类型不一致的时候,会导致ora 01722无效数字错误,这时候需要转换...

    类型不匹配,需要类型转换,函数:to_char()转换成字符, to_num()转换成数字 转载于:https://www.cnblogs.com/shenzhichipingguo/p/871710 ...

  3. oracle数据类型查询,Oracle 空间查询, 数据类型为 sdo_geometry

    数据:通过arcgis直连数据库,导入测试数据,导入时数据类型选择SDO_GEOMETRY. 测试数据包含点线面,点数据MAP_USER_POINT, 线数据MAP_USER_LINE,面数据MAP_ ...

  4. oracle 01722 无效数字,Oracle连接字符串报错误ORA-01722:无效数字的解决方法

    Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似于某字符串 Oracle连接字符串报错误ORA-01722:无效数字的解决方法,如下函数,用来查出名字相似 ...

  5. Oracle 空间查询, 数据类型为 sdo_geometry

    因网上搜索到的相关资料大部分都是关于sdo_geometry的介绍和以及通过sql语句添加要素,查询要素等等.没有找到存储过程相关的例子,所以只好自己动手啦. 准备 环境:windowsxp系统,安装 ...

  6. oracle关联查询取交集,Oracle 取两个表中数据的交集并集差异集合

    Oracle 作为一个大型的关系数据库,日常应用中往往需要提取两个表的交集数据 例如现有如下表,要求找出工资2500(不含2500)以上并且是男性(M)的员工编号,那么就要利用这两个表的关系做一个交集 ...

  7. oracle查询性能表关联,通过调节索引 优化Oracle关联查询性能

    本文引用一套实验室信息管理系统(LIS)使用的数据库,假设我们要查询2008年11月做检验的患者记录,条件是大于80岁,姓周的患者,最终结果按检查日期进行倒序排列.要使用的表有三个: ◆lis_rep ...

  8. oracle关联查询月价格,Oracle EBS 常用查询 - 价格表查询

    --根据价格表名称查询价格表头信息 Select Qp_List_Headers_Tl.Name As Price_List_Name,Qp_List_Headers_Tl.Description A ...

  9. oracle null 关联,oracle关联查询在ps/sql中正常,但是在C#中fill后值为空

    SQL代码如下 with t1 as( select b.is_import,b.active_flag,b.last_upd,b.row_id,b.dsig_date,b.vicont_code,b ...

最新文章

  1. 2021年大数据Spark(四十九):Structured Streaming 整合 Kafka
  2. DNS域名解析服务配置会不会?
  3. 转:【Java集合源码剖析】LinkedHashmap源码剖析
  4. python 音速_webpack多页应用架构系列(十一):预打包Dll,实现webpack音速编译
  5. 被马云逼上绝路,睡了12年宾馆!中国最狠会计,拿下4600亿
  6. php文件的上传与删除方法
  7. java socket5源码_Java利用TCP协议实现客户端与服务器通信【附通信源码】
  8. 实现自动登录:Filter 实现思路和方式
  9. ae制h5文字动画_大杀器Bodymovin和Lottie:把AE动画转换成HTML5/Android/iOS原生动画
  10. 阿里修炼秘籍,如何快速成长的几个技巧?
  11. GOOGLE卫星地图 计算方式
  12. 【100%通过率】华为OD机试真题 Java 实现【猜字谜】【2022.11 Q4 新题】
  13. Flask表单提交的方法
  14. 【总结】最全面的Python面试知识!
  15. Vue实现导航栏切换
  16. 使用Guardium和QRadar检测数据库漏洞
  17. 文件管理之文件(外存)分配管理 恩赐解脱
  18. 计算机科学与信息系统专业世界大学排名,2018年QS世界大学计算机科学与信息系统专业排名TOP25...
  19. 使用docker跑通tasn-mxnet代码
  20. 【Axure教程】伸缩卡片

热门文章

  1. C语言 static - C语言零基础入门教程
  2. C语言变量声明和定义 - C语言零基础入门教程
  3. 网格变形动画MeshTransform
  4. React之类式组件
  5. 服务器nasjava文件共享,办公室文件共享之如何搭建共享服务器或文件共享服务器nas?...
  6. 中山大学计算机类专业分数线,中山大学计算机类专业2016年在广东理科高考录取最低分数线...
  7. dedecms联动筛选_DEDECMS分类信息按联动类别筛选的实现方法
  8. python linux log,linux,python 常用的处理log的命令
  9. commit git idea 速度慢_关于Git,这篇文章还不够吗?
  10. linux 内核被污染,导致Linux 4.20性能下降的STIBP已被Kernel 4.19系列内核移除