如果任何表名或列名包含数据库保留字,例如 MONTH 或 YEAR,则当集成服务对数据库执行 SQL 时,会话将失败并出现数据库错误。您可以在 server/bin 目录中创建和维护保留字文件 reswords.txt。当集成服务初始化会话时,它会搜索 reswords.txt。如果文件存在,集成服务在对数据库执行 SQL 时会在匹配的保留字周围加上引号。
使用保留字时,请遵循以下规则和准则。
集成服务在生成 SQL 以连接到源、目标和查找数据库时搜索保留字文件。
如果您覆盖源、目标或查找的 SQL,则必须将任何保留字括在引号中。
您可能需要启用某些数据库,例如 Microsoft SQL Server 和 Sybase,以使用有关引用标识符的 SQL-92 标准。使用连接环境 SQL 发出命令。例如,对 Microsoft SQL Server 使用以下命令:
SET QUOTED_IDENTIFIER ON
示例 reswords.txt 文件 要使用保留字文件,请创建一个名为 reswords.txt 的文件并将其放在 server/bin 目录中。为您需要为其存储保留字的每个数据库创建一个部分。添加在任何表或列名称中使用的保留字。您不需要在此文件中存储数据库的所有保留字。reswords.txt 中的数据库名称和保留字不区分大小写。
以下是示例 reswords.txt 文件:
[Teradata] MONTH DATE INTERVAL [Oracle] OPTION START [DB2] [SQL Server] CURRENT [Informix] [ODBC] MONTH [Sybase]