Postgresql单引号逃脱

时间:2015-03-24 11:47:11

标签: sql postgresql pentaho

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

例如,我的选择查询是

SELECT ${UNIVERSITY},date from education.

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

ERROR: syntax error at or near "s"

并没有加载到postgres表中。任何人都可以帮我解决单引号,我应该如何在变量中使用?

3 个答案:

答案 0 :(得分:2)

由于您已经提到它没有引用表教育中的列。您可以通过此转换实现相同的预期输出。 enter image description here

在 - Table input步骤中,您可以编写查询SELECT date from education - 在split fields步骤中,您可以为结果添加新列{{ 1}}
- 从University步骤,您可以将参数值分配给新列大学
- 在Get Variables步骤中获得结果

答案 1 :(得分:2)

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

enter image description here

把它放在一个工作中并设置一个名为UNIVERSITY的参数或变量,然后给它"杜克大学"值。从那里启动上面的转换。选择一个总是导致为true的连接条件。我使用了' yr_key IS NOT NULL'。结果如下:

enter image description here

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

答案 2 :(得分:1)

你可以做SELECT REPLACE(${UNIVERSITY},'''', ''''''),date from education. 但是,您可能需要执行SELECT '${UNIVERSITY}',date from education查询:

SELECT Duke's university,date from education

SQL语法肯定是错误的。