如何找到IBM/DB2 SQL0104 Token问题?

问题描述 投票:0回答:1

这是我要调用的声明:

SELECT
    Test_Data.PRDINVSEQ.DASTAT, 
    DACUST, 
    DASRNO, 
    DADTOR, 
    DAORNO, 
    Test_Data.bthdrextpf.SHXDEP, 
    DADNAM, 
    DADTST, 
    CASE WHEN DACONF = '' THEN 'N' ELSE DACONF END AS DACONF1, 
    DAENGD, 
    DAEXTC, 
    DAPRGY, 
    Test_Data.BTHDR.SHSPL1, 
    DASPRD, 
    DADTCD, 
    DALDNO, 
    DADTLD, 
    DADTMD, 
    DAMDLN, 
    Test_Data.PRDINVSEQ.STATSQ
FROM Test_Data.BTHDR 
JOIN Test_Data.DLRINVAPF ON SHORNO = DAORNO 
JOIN Test_Data.PRDINVSEQ ON Test_Data.DLRINVAPF.DASTAT = Test_Data.PRDINVSEQ.DASTAT 
JOIN Test_Data.BTHDREXTPF ON SHORNO = SHXORNO 
WHERE  TRIM(DACUST)<>'' AND Test_Data.DLRINVAPF.DASTAT IN ('WP', 'OD', 'SC', 'BO')
ORDER BY DADNAM, Test_Data.PRDINVSEQ.STATSQ ASC, DADTST ASC, DAMDLN ASC 

错误对我来说没有意义:

[SQL0104] Token   was not valid. Valid tokens: ( + * - ? : DAY INF LAG NAN RID ROW RRN CASE CAST CHAR DATE DAYS.

注意Tokenwas之间有3个空格。

我更像是一名 Microsoft SQL 开发人员。任何有关使用 IBM/DB2 的指示或建议都值得赞赏,但我需要运行此 IBM/DB2 查询。

有人可以向我解释这个错误吗?

db2 ibm-midrange
1个回答
0
投票

三部分命名(Test_Data.PRDINVSEQ.DSTAT)指向名为Test_Data 的数据库、名为PRDINVSEQ 的表和名为DASTAT 的列。如果 Test_Data 实际上是一个模式,请将其从 column references 中删除并保留在 table references 中。

参考: https://www.ibm.com/docs/en/i/7.5?topic=request-three-part-names https://www.ibm.com/docs/en/i/7.5?topic=names-qualified-column

© www.soinside.com 2019 - 2024. All rights reserved.