我需要帮助在postgresql插入中转义单引号。我正在使用ETL工具从源代码中提取数据并在postgresql数据库中加载.Select语句包含一些变量。
例如,我的选择查询是
SELECT ${UNIVERSITY},date from education.
变量${UNIVERSITY}
的值为Duke's university
。这句话给我一个错误
ERROR: syntax error at or near "s"
并没有加载到postgres表中。任何人都可以帮我解决单引号,我应该如何在变量中使用?
答案 0 :(得分:2)
由于您已经提到它没有引用表教育中的列。您可以通过此转换实现相同的预期输出。
在 - Table input
步骤中,您可以编写查询SELECT date from education
- 在split fields
步骤中,您可以为结果添加新列{{ 1}}
- 从University
步骤,您可以将参数值分配给新列大学
- 在Get Variables
步骤中获得结果
答案 1 :(得分:2)
把它放在一个工作中并设置一个名为UNIVERSITY
的参数或变量,然后给它"杜克大学"值。从那里启动上面的转换。选择一个总是导致为true的连接条件。我使用了' yr_key IS NOT NULL'。结果如下:
然后您可以将结果运行到Table Output
步骤以加载到PostgreSQL中。
答案 2 :(得分:1)
你可以做SELECT REPLACE(${UNIVERSITY},'''', ''''''),date from education.
但是,您可能需要执行SELECT '${UNIVERSITY}',date from education
查询:
SELECT Duke's university,date from education
SQL语法肯定是错误的。