SQL Server에서의 이스케이프 문자
이스케이프 문자와 함께 따옴표를 사용하고 싶습니다.특수 문자가 있을 때 다음 오류를 방지하려면 어떻게 해야 합니까?
문자열 뒤에 닫히지 않은 따옴표가 있습니다.
다음과 같이 따옴표를 피할 수 있습니다.
select 'it''s escaped'
결과는 다음과 같습니다.
it's escaped
탈출하기 위해'
다른 것을 먼저 넣어야 합니다.''
두 번째 답변에서 알 수 있듯이 다음과 같이 단일 따옴표를 피할 수 있습니다.
select 'it''s escaped'
결과는 다음과 같습니다.
it's escaped
SQL을 VARCHAR에 연결하여 실행할 경우(즉, 동적 SQL) SQL을 매개 변수화하는 것이 좋습니다.따라서 SQL 주입으로부터 보호할 수 있고 이와 같은 견적을 피할 염려도 없습니다(견적을 두 배로 늘림).
예를 들어 하는 대신
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = ''AAA'''
EXECUTE(@SQL)
이것을 시험해 보세요.
DECLARE @SQL NVARCHAR(1000)
SET @SQL = 'SELECT * FROM MyTable WHERE Field1 = @Field1'
EXECUTE sp_executesql @SQL, N'@Field1 VARCHAR(10)', 'AAA'
이스케이프 문자를 정의할 수 있지만 사용할 수 있는 것은LIKE
절을 클릭합니다.
예:
SELECT columns FROM table
WHERE column LIKE '%\%%' ESCAPE '\'
여기서 검색됩니다.%
전체 문자열로, 이렇게 하면ESCAPE
식별자SQL Server
.
교체만 하면 됩니다.'
와 함께''
당신의 끈 안에
SELECT colA, colB, colC
FROM tableD
WHERE colA = 'John''s Mobile'
를 사용할 수도 있습니다.REPLACE(@name, '''', '''''')
SQL을 동적으로 생성하는 경우
같은 문장으로 이스케이프하려면 EXCAPE 구문을 사용해야 합니다.
또한 SQL 주입 공격을 고려하지 않을 경우 공격에 노출될 수 있다는 점도 언급할 필요가 있습니다.자세한 것은, Google 또는 http://it.toolbox.com/wiki/index.php/How_do_I_escape_single_quotes_in_SQL_queries%3F 를 참조해 주세요.
MSQL에서 인용부호를 이스케이프하려면 큰따옴표를 사용합니다.''
또는""
탈옥자를 낳다'
그리고."
,각각 다음과 같다.
변수의 사용자 입력을 회피하려면 SQL 내에서 다음과 같이 할 수 있습니다.
Set @userinput = replace(@userinput,'''','''''')
이제 @userinput은 견적이 발생할 때마다 추가 단일 견적을 사용하여 이스케이프됩니다.
WHERE username LIKE '%[_]d'; -- @Lasse solution
WHERE username LIKE '%$_d' ESCAPE '$';
WHERE username LIKE '%^_d' ESCAPE '^';
시작: SQL Server 언더스코어 이스케이프
를 사용할 수 있습니다.**\**
이스케이프할 값 앞의 문자(예:insert into msglog(recipient) values('Mr. O\'riely')
select * from msglog where recipient = 'Mr. O\'riely'
코드를 읽기 쉽게 하기 위해 대괄호를 사용할 수 있습니다.[]
인용하다'
또는 그 반대도 마찬가지입니다.
언급URL : https://stackoverflow.com/questions/5139770/escape-character-in-sql-server
'programing' 카테고리의 다른 글
Bash 변수 할당에서 명령을 찾을 수 없음 오류 (0) | 2023.04.17 |
---|---|
Generic.xaml의 특별한 점은 무엇입니까? (0) | 2023.04.17 |
.gitignore 파일 작성 방법 (0) | 2023.04.17 |
워크시트 클래스의 ShowAllData 메서드가 실패했습니다. (0) | 2023.04.17 |
하나의 파일을 제외한 모든 파일 이동 (0) | 2023.04.17 |