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;"
我正在尝试在 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;"