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 次 |
最近记录: |