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

T-SQL中必须转义的字符

赫连正初
2023-03-14

我正在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到我看到的类似问题的大部分答案,建议使用参数化查询...我已经在做了,但我使用的框架不会为我做任何转义。

因此,我想我会试一试,看看哪一个失败了......我尝试了一个简单的查询

select * from x where value = '<characters>'

在这样的查询中,我尝试了键盘上能找到的几乎所有字符,所有字符似乎都能正常工作。。。除了单引号。。那一个失败了。

因此,我想知道ms sql server-tsql中无效且必须转义的字符列表,不想冒险只转义一个引号,而留下其他可能导致麻烦的字符

感谢您的帮助

共有3个答案

陈知
2023-03-14

不确定这是否准确。

<代码>%和<代码> 和其他通配符(取决于查询)也可能需要转义。在那里你正在寻找一个点。这将失败

select * from xxxx where field like '%.%'   
南门英飙
2023-03-14

我只想说_(下划线)也需要转义。

从“FD[\u]%”之类的列中选择*产品

顺便说一下,参数化查询没有问题,但有时您希望转到SQL管理控制台并快速运行查询以找到一些结果。

鲁光霁
2023-03-14

字符串中唯一需要转义的字符是单引号(这是由两个单引号一起完成的)。否则,它是一个字符串,t-sql将不再对它大惊小怪。

如果您使用的是类似语句,请参阅此SO主题在SQL服务器中转义字符串,以便在类似表达式中使用它是安全的

顺便说一句,任何不允许我使用参数的框架,对我来说都不能正确地逃避这些东西,都是一个很难阻止的事情。尝试手动清理字符串输入就像依赖拉出方法一样;最终它会抓住你的。

 类似资料:
  • 问题内容: 我一直在寻找必须在ms sql服务器中转义的特殊字符列表,但找不到针对我建议使用参数化查询的类似问题的大部分答案。我已经在做,但是我正在使用的框架没有为我做任何逃避。 因此,我以为我会尝试一下,看看哪个失败了....我尝试了一个简单的查询 在这样的查询中,我尝试了几乎可以在键盘上找到的所有字符,并且所有这些字符似乎都可以正常工作……除了单引号..那个失败了。 因此,我想知道无效的字符列

  • 问题内容: 我正在使用MySQL API的功能 根据文档,它转义以下字符: 现在,我查看了OWASP.org的ESAPI安全库,并在Python端口中包含以下代码(http://code.google.com/p/owasp- esapi-python/source/browse/esapi/codecs/mysql。 py ): 现在,我想知道是否真的需要转义所有这些字符。我知道为什么%和_在那

  • 问题内容: 我在需要转换为SQL Server的旧报表中遇到了这一行。 ExamCodes是源代码,而learninger_code是模式。我知道SQL Server没有REGEXP_LIKE,大多数地方都告诉您使用PATINDEX。 我在想这会起作用: 但是我得到了错误: 在MSDN上,语法指定为 但是learninger_code是一个字段,我无法指定模式吗? 我最初没有写此报告,所以我还是对

  • 问题内容: 我厌倦了总是试图猜测,()[]{}|在使用许多正则表达式实现时是否应该转义’ ‘等特殊字符。 它与Python,sed,grep,awk,Perl,重命名,Apache,find等不同。是否有任何规则集可以告诉我何时以及何时不应该转义特殊字符?它是否取决于正则表达式类型,例如PCRE,POSIX或扩展正则表达式? 问题答案: 实际上,您必须转义哪些字符以及您必须避免转义哪些字符确实取决

  • 问题内容: Oracle中是否有一种简单的方法来转义SQL语句中的特殊字符?(即%,&,’)我看到了有关手动转义字符的链接,但我认为Oracle可能提供了一种更简便的方法。 注意:我正在通过ORM生成动态SQL select语句。 问题答案: 如果使用绑定变量和ORM,则应自动处理嵌入的单引号和“&”号。这些是SQL * Plus或SQL * Developer中的特殊字符。 要在查找文字字符%和

  • 问题内容: 背景: 我目前正在为企业CMS数据库(业务对象)开发Java前端。目前,我正在构建一个功能,以允许用户构建自定义数据库查询。我已经实施了一些措施,以确保用户只能使用已批准用于用户访问的可用列和运算符的子集进行选择(例如,可以选择SI_EMAIL_ADDRESS,而不能选择更强大的字段,如SI_CUID)。到目前为止,事情一直在进行,但是现在是时候保护此功能免受潜在的SQL注入攻击。 问