如何修复从AS400读取SQL Server中的"RIGHT in T2 type *N not found"?



我正在加入两个在SSIS软件包中驻留在AS400上的文件。我正在使用ODBC源和SQL命令文本字段。

针对每个表的SQL查询效果很好并填充数据。即使我加入它们,它也可以正常工作,除非存在"正确"功能。

此查询正常工作:

SQL
SELECT
T1.DOC,
T1.DOCNUM,
T1.REF4
FROM SCHEMA.Table1 AS T1

这也很好:

SELECT
T2.YEAR,
T2.PERIOD
FROM SCHEMA.Table2 AS T2

即使这很好:

SELECT
T1.DOC,
T1.DOCNUM,
T1.REF4,
T2.YEAR,
T2.PERIOD
FROM SCHEMA.Table1 AS T1
INNER JOIN SCHEMA.Table2 AS T2
ON T1.DOCNUM=T2.DOCNUM

但是,当我在查询中具有正确的功能(下图(时,它出现了:

SELECT
T1.DOC,
T1.DOCNUM,
T1.REF4,
T1.RIGHT(REF4, 8) as REF5,
T2.YEAR,
T2.PERIOD
FROM SCHEMA.Table1 AS T1
INNER JOIN SCHEMA.Table2 AS T2
ON T1.DOCNUM=T2.DOCNUM

我希望查询能捕获Ref4的8个正确字符,但是我会收到以下错误:

数据流任务测试的错误打开数据库连接(ODBC(错误发生。状态:'4292'。本机错误代码:-2N。fl8misystem i访问i5/os(sql0204的odbc driverld82-未找到t1 type'n。

正确的语法是:

RIGHT(T1.REF4, 8) as REF5

T1符合列名称,而不是函数名称。

相关内容

最新更新