SQL Server에서 작은 따옴표 바꾸기
SQL Server에서 단일 따옴표를 대체하는 이 기능이 있습니다.
그러나 하나의 인용문을 삽입하면 오류가 발생합니다.Replace(@strip,''',''))
:
Create Function [dbo].[fn_stripsingleQuote]
(@strStrip varchar(Max))
returns varchar
as
begin
declare @CleanString varchar(Max)
SET @var=(Replace(@strip,'',''))
return @var
end
다음과 같이 단일 따옴표를 두 배로 묶어야 합니다.
REPLACE(@strip, '''', '')
해라REPLACE(@strip,'''','')
SQL
따옴표 두 개를 사용하여 문자열에서 하나를 나타냅니다.
단일 따옴표를 완전히 제거해야 하는 경우 다음 작업을 수행할 수 있습니다.
Replace(@strip, '''', '')
그러나 일반적으로 데이터베이스를 쿼리할 때 SQL Server를 "로 대체합니다.기본 제공되는 SQL 함수(예: 대체)의 장점은 단일 따옴표를 두 배로 늘려야 한다는 것입니다.
코드에서 '를 '로 대체하려면 다음을 수행합니다.
Replace(@strip, '''', '''''')
물론...일부 상황에서는 데이터베이스를 쿼리할 때 매개 변수를 사용할 경우 이 작업을 완전히 수행하지 않아도 됩니다..NET 응용 프로그램에서 데이터베이스를 쿼리한다고 가정하면 SqlParameter 클래스를 사용하여 쿼리에 대한 SqlCommand 매개 변수를 입력하면 이 단일 견적 비즈니스가 자동으로 처리됩니다.SQL 매개 변수도 SQL 주입 공격을 방지하는 데 도움이 되므로 일반적으로 이 방법을 사용하는 것이 좋습니다.
char(39)를 사용할 수 있습니다.
insert into my_table values('hi, my name'+char(39)+'s tim.')
또는 이 경우:
Replace(@strip,char(39),'')
쿼트네임 기능을 복제하려고 하는 것 같습니다.이 내장 함수는 문자열 내부에 구분 기호를 추가하고 구분 기호를 적절하게 이스케이프하는 데 사용할 수 있으며 두 개의 단일 구분 기호를 모두 인식합니다.'
두 배로"
구분 기호로 따옴표, 대괄호[
그리고.]
.
하나의 따옴표를 사용하여 하나의 따옴표를 이스케이프해 보십시오.
Replace(@strip, '''', '')
우리는 견적서의 수를 두 배로 늘려야 합니다.
단일 따옴표를 대체하는 방법:
REPLACE(@strip, '''', '')
큰따옴표를 대체하는 방법
REPLACE(@strip, '''''', '')
최근 REPLACE() 쿼리 중 하나에서 수행하지 않은 것처럼 단일 따옴표를 사용하여 단일 따옴표를 이스케이프해도 작동하지 않는 경우 쿼리 전에 SET QUQED_IDIFIER OFF를 사용한 다음 SET QUQED_IDIFIER ON을 사용할 수 있습니다.
예를들면
SET QUOTED_IDENTIFIER OFF;
UPDATE TABLE SET NAME = REPLACE(NAME, "'S", "S");
SET QUOTED_IDENTIFIER OFF;
저는 여기에 적용될 이상한 이상 현상에 부딪혔습니다.Google API를 사용하여 XML 형식으로 응답을 얻었을 때, 작은 따옴표 때문에 XML 데이터 형식으로 변환하지 못했습니다.
대체(@Strip, ''',''')
단일 따옴표가 39가 아닌 146 문자였기 때문에 작동하지 않았습니다.그래서 저는 다음을 사용했습니다.
대체(@Strip, char(146), ')'
이는 일반적인 단일 따옴표 char(39) 및 기타 특수 문자에도 작동합니다.
사용해 보십시오.
select replace (colname, char(39)+char(39), '') AS colname FROM .[dbo].[Db Name];
저는 원하는 결과를 얻었습니다.예: 입력 값 --> '%Pat'처럼) '''OR
Want Output --> *Like '%Pat') OR*
위의 쿼리를 사용하여 원하는 결과를 얻었습니다.
SQL 문이 데이터베이스에 도달하기 전에 사용자 입력(입력 위생)에서 단일 따옴표를 스트라이핑/교체/스케일링해야 합니다.
큰따옴표를 사용하여 따옴표를 이스케이프해야 할 뿐만 아니라 변수 이름도 혼동했습니다.당신은 @CleanString과 @strStrip 대신 @var와 @strip을 사용하고 있습니다.
이에 대한 가장 짧은 SQL 문은 다음과(와)
CREATE FUNCTION [dbo].[fn_stripsingleQuote] (@strStrip varchar(Max))
RETURNS varchar(Max)
AS
BEGIN
RETURN (Replace(@strStrip ,'''',''))
END
이것이 도움이 되길 바랍니다!
replace (colname, '', '') AS colname FROM [dbo]를 선택합니다.[Db 이름]
언급URL : https://stackoverflow.com/questions/1440733/replace-single-quotes-in-sql-server
'programing' 카테고리의 다른 글
크기의 내부 메커니즘(단위: C? (0) | 2023.07.15 |
---|---|
웹 페이지의 내용을 가져와 문자열 변수에 저장하는 방법 (0) | 2023.07.15 |
Excel VBA에서 구현체를 사용하는 방법 (0) | 2023.07.15 |
유형 스크립트:튜플 유형에서 항목 제거 (0) | 2023.07.15 |
R의 축 레이블 회전 (0) | 2023.07.10 |