Postgres SQL 单引号转义

Postgres SQL Single quote Escape

我需要帮助来转义 postgresql 插入中的单引号。我正在使用 ETL 工具从源中提取数据并加载到 postgresql database.The Select 语句中包含一些变量。

例如我的select查询是

SELECT ${UNIVERSITY},date from education.

变量 ${UNIVERSITY} 的值为 Duke's university。这个语句给我一个错误

ERROR: syntax error at or near "s"

并且没有加载到 postgres table。谁能帮我转义单引号,我应该如何在变量中使用?

你可以SELECT REPLACE(${UNIVERSITY},'''', ''''''),date from education. 但可能你只需要做 SELECT '${UNIVERSITY}',date from education 因为你的查询看起来像:

SELECT Duke's university,date from education

SQL 语法肯定是错误的。

既然你已经提到了它,它并不引用table教育中的一个专栏。您可以通过此转换获得相同的预期输出。


- Table input 步骤中,您可以编写查询 SELECT date from education
- 在 split fields 步骤中,您可以将新列添加到您的结果为 University
- 从 Get Variables 步骤开始,您可以将参数值分配给新列大学
- 在 Select Values 步骤

中获取结果

@Marlon Abeykoon 的回答很好。你也可以这样做。

将其放入作业中并在其中设置一个名为 UNIVERSITY 的参数或变量,并为其赋予 "Duke's University" 值。从那里启动上述转换。选择一个始终为 true 的连接条件。我用了'yr_key IS NOT NULL'。以下是结果:

然后您可以 运行 将结果放入 Table Output 步骤以加载到 PostgreSQL。