首页 > 解决方案 > 错误代码:-802,SQL 状态:22023 SQL0802

问题描述

我有一个更新问题(数据库是 AS400):

UPDATE      TABLE1 t1
SET      
(t1.VRNUMO,t1.VRNUSE) = (SELECT XVRNUMO,XVRNUSE   FROM TABLE2 t2  where  t2.XVRPRTE = t1.VRPRTE AND t2.XVRPROG=t1.VRPROG)
 WHERE
 t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

我收到此错误消息:

[错误代码:-802,SQL 状态:22023] [SQL0802] Errore nella definizione o nella conversione dei dati。

如果我尝试在相同条件下使用 JOIN 执行 SELECT,我会收到相同的错误:

SELECT *
FROM
TABLE1 t1
LEFT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  and t2.XVRPROG=t1.VRPROG
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

如果我使用 RIGHT JOIN 执行相同的 SELECT 或者我从 JOIN 中删除第二个条件(t2.XVRPROG=t1.VRPROG)或

SELECT *
FROM
TABLE1 t1
RIGHT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  and t2.XVRPROG=t1.VRPROG
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0


SELECT *
FROM
TABLE1 t1
LEFT JOIN
TABLE2 t2
ON
t2.XVRPRTE=t1.VRPRTE  
WHERE
t1.VRDIRI='M' AND t1.VRCODA=1 AND t1.VRNUMO=0

可能是什么问题呢?

标签: sqljoinselectsql-updateibm-midrange

解决方案


推荐阅读