我做了一些测试来重现您的问题(我在猜测IMUS15和{}的定义):create table jmmlib.table1
(imus15 char(15),
data1 char(25));
create table jmmlib.table2
(cmcsno dec(6,0),
data1 char(25));
insert into jmmlib.table1
values ('123456', 'test key 1'),
('1123a', 'non-numeric key'),
('555', 'short key');
insert into jmmlib.table2
values (123456, 'numeric key 1'),
(1123, 'no valid match'),
(555, 'short numeric key');
select *
from jmmlib.table1
full outer join jmmlib.table2 on imus15 = char(cmcsno);
结果是:
^{pr2}$
请注意,您只需将CMCSNO投射到角色上,不需要其他旋转。在
产生SQL0802-数据转换或数据映射错误的方法:join on imus15 = cmcsno
join on trim(imus15) = cmcsno
join on dec(imus15,6,0) = cmcsno
在所有这些转换中(隐式或显式)都是imus15 to decimal,其中非数字键导致SQL0802。在