Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex SQL在INSERT语句的转义字符中丢失 我正在使用Microsoft SQL2005 “Someone”给了我一个INSERT“预定义语句”列表,我无法在SQL之外修改这些语句(例如,使用Python等脚本语言) 作为“某人”,我在尝试为NVARCHAR类型的字段转义引号字符时遇到问题_Regex_Sql Server 2005_Escaping_Quoting - Fatal编程技术网

Regex SQL在INSERT语句的转义字符中丢失 我正在使用Microsoft SQL2005 “Someone”给了我一个INSERT“预定义语句”列表,我无法在SQL之外修改这些语句(例如,使用Python等脚本语言) 作为“某人”,我在尝试为NVARCHAR类型的字段转义引号字符时遇到问题

Regex SQL在INSERT语句的转义字符中丢失 我正在使用Microsoft SQL2005 “Someone”给了我一个INSERT“预定义语句”列表,我无法在SQL之外修改这些语句(例如,使用Python等脚本语言) 作为“某人”,我在尝试为NVARCHAR类型的字段转义引号字符时遇到问题,regex,sql-server-2005,escaping,quoting,Regex,Sql Server 2005,Escaping,Quoting,例如,假设我需要运行以下SQL语句: INSERT INTO TableX VALUES('John Doe's value') -- This is not working because of single quotes... 我需要找到一种方法,将该字符串转换为插入(johndoe的值),而不使用SQL语句之外的方法 我尝试了以下语句,将一个引号与REPLACE函数和另一个引号连接起来,但没有成功: INSERT INTO TableX VALUES('' + REPLACE('John

例如,假设我需要运行以下SQL语句:

INSERT INTO TableX VALUES('John Doe's value') -- This is not working because of single quotes...
我需要找到一种方法,将该字符串转换为插入(
johndoe的值
),而不使用SQL语句之外的方法

我尝试了以下语句,将一个引号与
REPLACE
函数和另一个引号连接起来,但没有成功:

INSERT INTO TableX VALUES('' + REPLACE('John Doe's value'), ''', '''' + '')

为了处理转义字符,但它不起作用


我更喜欢使用函数或类似的简单内容,而不是使用存储过程或更复杂的解决方案。

如果您在SQL server中接受INSERT语句,我强烈建议您停止接受INSERT语句,并提供具有定义良好的参数和数据类型的存储过程。否则,您将容易受到注入攻击(我同意您的API的内部客户端不会这样做,但您的API将容易受到攻击,仅此而已!)


顺便说一句,函数和存储过程都是相似的,因为本例涉及的复杂性。

是的,我应该避免这种情况。但有时你需要这样做,即使你知道这不是最好的方法,只是因为有人告诉你这样做,你不能颠倒“主从”的关系。虽然这个论点对你没有帮助,但我认为主从有责任给出“插入”语句,以确保它们格式正确,在这种情况下。我在这里看到的“从”与DBMS本身没有什么不同,如果作为一个主用户,我给它一个格式错误的SQL,它就无法执行,并将错误抛到我的脸上:)有时候现实世界真的很复杂,解决方案在其背景中有一段历史。我应该让那些
插入
语句,这些语句来自MS Word的邮件边缘和MS Excel数据电子表格。这种方法已经建立并经过测试(PM、开发人员、QA部门等之间的内部程序)。对于“开发人员”(即,新方法将增加成本…)来说,没有办法逃避。我的解决方案是使用MS Excel中的“查找和替换”将
'
替换为
'
,解决此问题。我想知道是否会有一种更接近程序化的方式。。。
INSERT INTO TableX VALUES('''''' + REPLACE(''''''John Doe's value'''''''), '''''', '''''''' + '''''')