如何修复从 AS400 读取的 SQL 服务器中的 "RIGHT in T2 type *N not found"?
How to fix "RIGHT in T2 type *N not found" in SQL Server reading from AS400?
我正在将驻留在 AS400 上的两个文件合并到一个 SSIS 包中。我正在使用 ODBC 源和 SQL 命令文本字段。
针对每个 table 的 SQL 查询运行良好并填充数据。即使我加入他们,它也能正常工作,除非 "RIGHT" 函数存在。
这个查询工作正常:
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
但是当我在查询中使用 RIGHT 函数时(如下),它会出错:
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 中的 RIGHT 类型 'N 未找到。
正确的语法是:
RIGHT(T1.REF4, 8) as REF5
T1
限定 列名称 ,而不是函数名称。
我正在将驻留在 AS400 上的两个文件合并到一个 SSIS 包中。我正在使用 ODBC 源和 SQL 命令文本字段。
针对每个 table 的 SQL 查询运行良好并填充数据。即使我加入他们,它也能正常工作,除非 "RIGHT" 函数存在。
这个查询工作正常:
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
但是当我在查询中使用 RIGHT 函数时(如下),它会出错:
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 中的 RIGHT 类型 'N 未找到。
正确的语法是:
RIGHT(T1.REF4, 8) as REF5
T1
限定 列名称 ,而不是函数名称。