我正在加入两个在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
符合列名称,而不是函数名称。