Informatica Cloud的源类型为DB2for I cdc。只有少数表的列名中包含#。如果Map是在列名中包含#的情况下运行的,则Map将失败。
示例:如果有一个Employee表包含First#Name列,则使用SQL Override
因此,为了消除列名中的#,尝试使用SQL Override为列名设置别名。
使用了包含同一个表的列列表的select语句。同一个表的示例SQL语句:
Select First#Name as First_Name
Last#Name as Last_Name
.
.
.
.
.
.
.
Employee;
但是,仍然使用#符号提取列名,这破坏了Map。
有没有办法在列名中把#改为_的别名?
2条答案
按热度按时间guicsvcw1#
你有两个选择-
1.可以用双单位“col_name”括起列名。
1.如果这不能解决问题,请不要提及任何sql覆盖,并且只连接必需的列。Informatica应该自动构建sql并获取数据。
1.如果以上两个都不起作用,那么你需要改变DB2中的一些设置,以便处理列名中的特殊字符。我还没有测试过,所以我不能保证这一点。
q9yhzks02#
SQL查询应采用这样的方式,即除了需要时没有空格,并且整个查询应在一行中显示。
从查询中删除所有空格(除了下面提到的空格)和换行符。这样就可以解决问题。
可留出空间的位置:
1.在SELECT语句之后
1.在FROM关键字之前
1.在FROM关键字之后
1.为具有特殊字符的列取别名时,在AS关键字之前和之后(此处将使用2个空格,一个在AS关键字之前,另一个在AS关键字之后)