问题的起因是由于需要union all两个查询结果,字段一致但是字段类型不同。

出现这种错误,要先看一下是不是sql中有用到连接:union,union all之类的,如果有,需要注意相同名称字段的数据类型一定要相同。

select a.time from A a union all select b.time from B b where a.name = b.name;

例如上现那句sql,要注意A和B中的time字段可能一个是date格式,一个是字符串格式,总之可能不是相同格式。一定要注意。

把varchar转换成number to_number(参数)

相反则用 to_char(参数)

公司服务器周末要加硬盘,周一来后应用连不上了。报错如下 报错: ORA- 12170:TNS connect timeout occurred 第一反应是监听没开: 1. 测试了一下, 连接超时没用ping 通 C:\Users\Administrator>tnsping brorcl TNS Ping Utility for 64-bit Windows: Version 11.2.0.1.0 – Production on 15-6月 -2015 09:45:43 已使用的参数文件 一、前言关于使用mybatis报"org.springframework.jdbc.BadSqlGrammarException: ### Error updating database. Cause: java.sql.SQLSyntaxErrorException: ORA- 01790: 表达式 必须 具有 对应 表达式 相同 数据 类型 "错误异常,详情日志如下二、解决方法1.原因分析 -对于 数据 库... 报错原因:TABLE1和TABLE2中 对应 的字段, 数据 类型 不一致。比如TABLE1中的USER_ID 数据 类型 为NUMBER,TABLE2中的USER_ID 数据 类型 为VARCHAR2。错误信息: ORA- 01790: expression must have same datatype as corresponding expression。解决办法:建试图时用TO_CHAR,TO_NUMBER等函数转换 数据 类型 。建议对转换 数据 类型 的字段使用别名,否则如果该字段在第一个SELECT后,会报错。 先祝大家端午快乐先说背景一般应用服务中都会有记录某个 数据 变化轨迹的需求,比如我们用户中心,会记录某个用户从注册到使用中更换过手机号,更换用户名的日志记录,再到最后注销等一系列操作过程中的 数据 轨迹,早期的记录是侵入到业务中的,每个服务有记录 数据 轨迹的需求,就单手撸一套 数据 轨迹的功能这样做的缺点是侵入业务,而且每次都要开发一套,效率低,开发心里苦,眼泪完全忍不住;那怎么办,能不能开发一套通用... Oracle: expression must have same datatype as corresponding expression 报错解决 博主今天也遇到这种错误,本地测试和客户生产环境 相同 ,但是 数据 不同,导致本地运行正常,客户反馈报错。排查了下发现错误产生原因。现将排查方式和修改罗列,仅供以后参考。 背景:更新视图,本地执行正确,客户反馈脚本执行报错。错误如下: 报错... ORA- 01790错误提示信息是“expression must have same datatype as corresponding expression”,如果使用oerr命令查看,没有过多的描述信息。单纯从错误信息的内容...