Informatica Cloud DB2 for i cdc 连接类型 SQL 覆盖不起作用
Informatica Cloud DB2 for i cdc connection type SQL Override not working
Informatica Cloud 的源是 I cdc 的 DB2 类型。很少有 table 在其列名中包含 #。如果映射 运行 的列名称中包含 #,则映射失败。
示例:如果有一个员工 table 的列是 First#Name 然后使用 SQL Override
因此,要从列名中删除 #,请尝试使用 SQL 覆盖以别名列名。
使用了包含相同 table 的列列表的 select 语句。 SQL 语句示例:
Select First#Name as First_Name
Last#Name as Last_Name
.
.
.
.
.
.
.
Employee;
但是,仍然会使用 # 符号获取列名,这会破坏映射。
任何解决方案如何在列名称中为#添加别名?
你有两个选择-
- 您可以用双引号“col_name”将列名括起来。
Select "First#Name" as First_Name
"Last#Name" as Last_Name
.
Employee;
- 如果这不能解决问题,请不要提及任何 sql 覆盖并仅连接必需的列。 Informatica 应自动构建 sql 并获取数据。
- 如果以上两个都不行,那么你需要更改DB2中的一些设置来处理列名中的特殊字符。我没有测试过这个所以我不能保证这个。
Select First#Name AS First_Name,Last#Name AS Last_Name,Column3,Column4,Column5,Column6,Column7,Column8 FROM Employee;
SQL 查询应该采用这样一种方式,除了需要的时候没有空格,并且整个查询应该出现在一行中。
从查询中删除所有空格(下面提到的除外)和换行符。这将解决问题。
哪里可以留空格:
- SELECT语句后
- 在 FROM 关键字之前
- FROM关键字后
- 为具有特殊字符的列设置别名时,在 AS 关键字前后(这里将使用 2 个空格,一个在 AS 关键字之前,第二个在 AS 关键字之后)
Informatica Cloud 的源是 I cdc 的 DB2 类型。很少有 table 在其列名中包含 #。如果映射 运行 的列名称中包含 #,则映射失败。
示例:如果有一个员工 table 的列是 First#Name 然后使用 SQL Override
因此,要从列名中删除 #,请尝试使用 SQL 覆盖以别名列名。
使用了包含相同 table 的列列表的 select 语句。 SQL 语句示例:
Select First#Name as First_Name
Last#Name as Last_Name
.
.
.
.
.
.
.
Employee;
但是,仍然会使用 # 符号获取列名,这会破坏映射。
任何解决方案如何在列名称中为#添加别名?
你有两个选择-
- 您可以用双引号“col_name”将列名括起来。
Select "First#Name" as First_Name
"Last#Name" as Last_Name
.
Employee;
- 如果这不能解决问题,请不要提及任何 sql 覆盖并仅连接必需的列。 Informatica 应自动构建 sql 并获取数据。
- 如果以上两个都不行,那么你需要更改DB2中的一些设置来处理列名中的特殊字符。我没有测试过这个所以我不能保证这个。
Select First#Name AS First_Name,Last#Name AS Last_Name,Column3,Column4,Column5,Column6,Column7,Column8 FROM Employee;
SQL 查询应该采用这样一种方式,除了需要的时候没有空格,并且整个查询应该出现在一行中。
从查询中删除所有空格(下面提到的除外)和换行符。这将解决问题。
哪里可以留空格:
- SELECT语句后
- 在 FROM 关键字之前
- FROM关键字后
- 为具有特殊字符的列设置别名时,在 AS 关键字前后(这里将使用 2 个空格,一个在 AS 关键字之前,第二个在 AS 关键字之后)