ORA-01790错误提示信息是“expression must have same datatype as corresponding expression”,如果使用oerr命令查看,没有过多的描述信息。
单纯从错误信息的内容其实就可以大概看出问题出处,是由于数据类型不一致引起的报错。
这里我通过一个实验模拟一下这个错误,然后给出一个解决方法。
实验中我们将使用UNION ALL操作来模拟这个错误,因为UNION ALL要求多个UNION内容对应字段的数据类型要严格一致。
1.创建三个实验用表T1、T2和T3
sec@ora10g> create table t1 (x varchar2(10), y varchar2(10));
Table created.
sec@ora10g> create table t2 (x varchar2(10), y varchar2(10));
Table created.
sec@ora10g> create table t3 (x int, y varchar2(10));
Table created.
注意T1和T2表的所有字段类型均为“VARCHAR2”,T3表的X字段类型是“INT”。
单纯从错误信息的内容其实就可以大概看出问题出处,是由于数据类型不一致引起的报错。
这里我通过一个实验模拟一下这个错误,然后给出一个解决方法。
实验中我们将使用UNION ALL操作来模拟这个错误,因为UNION ALL要求多个UNION内容对应字段的数据类型要严格一致。
1.创建三个实验用表T1、T2和T3
sec@ora10g> create table t1 (x varchar2(10), y varchar2(10));
Table created.
sec@ora10g> create table t2 (x varchar2(10), y varchar2(10));
Table created.
sec@ora10g> create table t3 (x int, y varchar2(10));
Table created.
注意T1和T2表的所有字段类型均为“VARCHAR2”,T3表的X字段类型是“INT”。