首页 > 解决方案 > 使用带有 Talend 的 tDBinput 选择 globalmap 给出错误:无效的字符常量

问题描述

我必须删除人名中的重音符号,但是当它在 SQL oracle 中工作时,我无法在 Talend 中应用该函数。

此查询适用于我的 tDBInput 组件:

"SELECT  '"+((String)globalMap.get("copyOfSORTIE.NOM"))+"' as nom_nom_compl,
         '"+((String)globalMap.get("copyOfSORTIE.ENTETE"))+"' entete
FROM DUAL"

但是,当我想添加转换功能时,它不起作用

此查询不起作用:

"SELECT  '"+((String)globalMap.get(CONVERT("copyOfSORTIE.NOM",'US7ASCII')))+"' as nom_nom_compl,
         '"+((String)globalMap.get("copyOfSORTIE.ENTETE"))+"' entete
FROM DUAL"

在我的天赋中:

在此处输入图像描述

我收到此错误

在此处输入图像描述

它的工作语法是什么?

谢谢!

标签: sqlglobaltalendconvertersinvalid-characters

解决方案


有两件事:

  • 我不知道 CONVERT 方法,但我可以看到您将其应用于 globalMap 变量的键,而不是值(好像您想转换“myKey”而不是“myValue”,它附加到钥匙)。你确定这是你想要实现的吗?如果不是,语法应该类似于"SELECT CONVERT('"+((String)globalMap.get("copyOfSORTIE.NOM"))+"','US7ASCII') "

  • 在 talend 中实现的一个有用的 java 方法是TalendString.removeAccents("")您可以直接应用于 talend 变量,因此不使用 SQL 方法。


推荐阅读