talend中的嵌套sql语句(已更新)

时间:2015-12-01 15:26:30

标签: sql talend

我正在尝试在postgresql tPostgresqlRow_1中使用嵌套的sql。 但我收到一个错误。 如果我在PgAdmin中运行它,以下sql运行正常。 但在Talend我收到一个错误。 我从一个表中获取最大日期并更新另一个表中的列。

update "STG_magento_de"."configuration_table"
set created_at=(select MAX(created_at) from "STG_magento_de"."sales_flat_order_test")
where table_name='sales_flat_order_test'

3 个答案:

答案 0 :(得分:1)

tPostgresqlRow组件需要包含SQL语句的Java字符串。

最可能的问题是您在声明中有未转义的引号。这在pgAdmin中运行正常,因为它是有效的。要从Talend传递相同的语句,您必须转义语句本身的所有引号。或者,您可以尝试从SQL语句中删除双引号。

请记住将整个内容括在引号中,以便它是一个合适的Java字符串。

答案 1 :(得分:0)

跟随带有转义引号的sql工作。

"update \"STG_magento_de\".\"configuration_table\"
set created_at=(select MAX(created_at) from \"STG_magento_de\".\"sales_flat_order_test\")
where table_name='sales_flat_order_test'"

答案 2 :(得分:0)

create or replace function eliminarComillas (text) returns text AS $$
       select replace(replace(replace($1,'**\"**','"'),'‘','‘'),'’','’');
    $$ language sql;"