如何在 db2 sql 中转义撇号

Posted

技术标签:

【中文标题】如何在 db2 sql 中转义撇号【英文标题】:How does one escape an apostrophe in db2 sql 【发布时间】:2010-03-14 13:01:10 【问题描述】:

我正在寻找与 T-SQL 等效的 db2:

INSERT INTO People (Surname) VALUES ('O''Hara');

【问题讨论】:

你能把DB2版本和你得到的SQL错误贴出来吗? 【参考方案1】:

根据DB2 Survival Guide,使用两个撇号'' 也可以在DB2 上获得一个撇号。这不适合你吗?

【讨论】:

我确信我以前在 DB2 上做过,但手头没有 DB2 实例!很高兴你明白了。【参考方案2】:

Brabster 是正确的。你应该用''逃跑' 所以要插入 O'Hara ,你必须写 O''Hara 摘自: http://www.michael-thomas.com/tech/db2/db2_survival_guide.htm

转义字符。

要插入单引号,请使用 2 个单引号 引号 ( '' )。插入宠物的使用 以下宠物的。示例: 插入 MYTABLE(问题,答案)值('什么是 你的宠物叫什么名字?','blacky') `

【讨论】:

这对我不起作用:com.ibm.db2.jcc.am.SqlSyntaxErrorException: DB2 SQL Error: SQLCODE=-798, SQLSTATE=428C9, SQLERRMC=ID, DRIVER=4.13.127, query: INSERT INTO students (dob, first_name, id, last_name) VALUES (DATE '1965-12-01', 'Jim', 1, 'O''Connor''s'),有什么想法吗? @ipolevoy 我认为您查询的问题不是姓氏,而是字符串“1965-12-01”左侧的日期。我确认我能够在 DB2 Linux 中使用 'O''Connor''s' 更新 col。【参考方案3】:

简单一点。

将您的查询放在单引号 (') 中。并且无论您在哪里使用 qoutes,都将其加倍。 例如你想插入......我很好。有答案。

在 SQL 中,我们需要给出......'我很好。有答案。'

【讨论】:

【参考方案4】:

我试图在 DB2 中插入一个电子邮件地址的正则表达式。我以为我必须转义前面链接中概述的所有字符,但似乎只需要转义正则表达式中包含的单引号才能将其正确插入数据库:

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.1.0/com.ibm.db2.luw.admin.ts.doc/doc/c0059609.html

【讨论】:

该页面来自手册中介绍 Db2 文本搜索功能的部分(请参阅它在目录中的位置)。这是一个单独的附加组件,具有单独的语法和功能。该页面不适用于 SQL 函数或一般语法。 对于正则表达式,您确实需要转义正则表达式特殊字符。例如。要匹配 [ 你需要在正则表达式模式中使用 [

以上是关于如何在 db2 sql 中转义撇号的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MySql 中转义撇号(')?

在 JavaScript 或 PHP 中转义撇号 [重复]

防止使用参数查询不工作的转义撇号

Excel在单元格值中转义引号或撇号

SQL Server 到 Mysql 的迁移(使用 Mysql Workbench)。如何在 Workbench 向导的步骤中添加带有手动转义撇号的数据?

如何插入包含撇号(单引号)的值?