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

Nested sql statement in talend (updated)

我正在尝试在 postgresqltPostgresqlRow_1 中使用嵌套 sql。 但是我收到一个错误。 如果我在 PgAdmin 中 运行 以下 sql 运行 没问题。 但是在 Talend 中我收到一个错误。 我从一个 table 获取最大日期并更新另一个 table.

中的列
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'

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

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

记得用引号将整个内容括起来,这样它才是正确的 Java 字符串。

使用转义引号跟随 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'"
create or replace function eliminarComillas (text) returns text AS $$
       select replace(replace(replace(,'**\"**','"'),'‘','‘'),'’','’');
    $$ language sql;"