当前位置: 首页 > 知识库问答 >
问题:

Postgres SQL单引号转义

田意致
2023-03-14

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

例如,我的选择查询是

SELECT ${UNIVERSITY},date from education.

变量${UNIVERSITY}的值为杜克大学。这句话给了我一个错误

ERROR: syntax error at or near "s"

而不是被加载到postgres表中。谁能帮我分析单引号,我应该如何在变量中使用单引号?

共有3个答案

呼延凌
2023-03-14

您可以执行SELECT REPLACE(${UNIVERSITY},'''', ''''''),日期从教育。但您可能只需要执行SELECT'${UNIVERSITY}',日期从教育,因为您的查询如下所示:

SELECT Duke's university,date from education

从SQL语法上讲,这绝对是错误的。

邹祺然
2023-03-14

@马龙·阿贝库恩的回答很好,你也可以这样做。

把它放在一个作业中,在那里设置一个名为UNIVERSITY参数或变量,并给它一个“Duke’s UNIVERSITY”值。从那里启动上述转换。总是结果为true的pick连接条件。我使用了“yr_key IS NOT NULL”。结果如下:

然后,您只需将结果运行到表输出步骤中即可加载到 PostgreSQL 中。

魏健柏
2023-03-14

在这里
- 表输入步骤 您可以编写查询 选择教育日期
- 在拆分字段步骤中,您可以将新列作为大学添加到结果
中 - 从获取变量步骤中,您可以将参数值分配给新列大学
- 在“选择值”步骤中获取结果

 类似资料:
  • 问题内容: 这是适合此描述的命令行示例: 我已经尝试过'(不转义),URL编码(在另一端没有urldecoded!)和”(引号消失!),但没有成功。 问题答案: 如果您将“替换为Unicode编码的”(\ u0027),则可以使用: 奇怪,但是值得知道!

  • 问题内容: 我有一个正在编写的脚本,用于将某些字段移至新的数据库,例如 但是如您所见,由于单引号和双引号,查询每次都会中断,是否有解决此问题的方法,例如herdok或类似的东西 问题答案: 为此而制作的。 PHP:mysql_real_escape_string

  • 我正在使用opencsv读取csv文件。有时csv文件中包含单引号或双引号。如何读取它们而不更改csv文件本身中的数据。 现在,如果我用两个单引号替换一个单引号,它工作正常,与双引号相同,用两个替换单个引号,它的工作原理。但我不想碰源文件。 要访问的代码如下: 这样做的结果是跳过下一行(也包含双引号),插入所有奇数行,跳过偶数行 提前谢谢

  • 问题内容: 我该如何工作? 将在引起此故障。我从类似的文件运行它,但也无法从命令行运行。我试过使用and 和(unicode ) 我被卡住了 问题答案: 我有同样的问题。最简单的解决方案是,除了用单引号引起来的撇号外,还要使用反斜杠来将其引起来。 对于您的用例,更改为,它应该可以工作。 另一种方法是将POST数据()用双引号引起来,同时用反斜杠转义JSON字符串中所有嵌套的双引号。

  • 问题内容: 如何在JavaScript中转义(单引号)? 这是我尝试使用的地方: 上面代码的结果在文本框中填充了“ hel”。我试图用\代替’,但这就是我得到的。 上面代码的结果在文本框中填充了“ hel \”。 如何成功转义单引号? 问题答案: 您可以使用HTML实体: 对于 对于 … 。

  • 问题内容: 相关链接: PostgreSQL中的字符串文字和转义字符 这是我的错误: 这是我的查询: 如果我使用双引号,请删除单引号的反斜杠转义符,并在SELECT语句之前删除E 我得到这个: 而且由于查询被截断,我也收到错误消息。 我以前曾使用dblink进行过转义,因此是否需要服务器设置或需要配置的东西? 我知道如果我在sql服务器本身上运行查询,但该查询工作正常,但不能与dblink一起运行