cod*_*rer 2 mysql postgresql talend
我正在尝试使用Talend将存储在MySQL中的JSON数据作为VARCHAR数据类型并将其导出到以下类型的PostgreSQL 9.4表中:
CREATE TABLE myTable( myJSON as JSONB)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行该作业时,我收到以下错误:
错误:列"json_string"的类型为json,但表达式的类型为字符变化
提示:您需要重写或转换表达式.职位:54
如果我使用python或只是普通的SQL与PostgreSQL插入,我可以插入一个字符串,如'{"Name":"blah"}',它理解它.
INSERT INTO myTable(myJSON) VALUES ('{"Name":"blah"}');
Run Code Online (Sandbox Code Playgroud)
任何想法是如何在Talend完成的?
您可以通过打开"tPostgresqlOutput"组件上的"高级设置"选项卡来添加类型转换.请考虑以下示例:
在这种情况下,"tPostgresqlOutput_1"的输入行有一列data.此列类型的String并且被映射到数据库列data类型的VARCHAR(如由拓蓝建议的默认):
接下来,打开组件设置tPostgresqlOutput_1并找到"高级设置"选项卡:
在此选项卡上,您可以用data新表达式替换现有列:
"?::json"`. Note the usage of the placeholder character?``将被原始值替换.Replace.这将用您的SQL表达式(包括类型转换)替换Talend提出的值.这应该可以解决问题.
| 归档时间: |
|
| 查看次数: |
1578 次 |
| 最近记录: |