내 응용 프로그램 중 하나에서 Dynamic SQl로 코딩 된 Proc가 있습니다. 성을 가진 신청자를 검색하는 데 사용됩니다. 지금은 성 또는 성으로 처음 2 자리 숫자로 신청자를 검색하고 있습니다. 그러나 나는 그들의성에 아포스트로피 (예 : O'Connor)가있는 신청자를 찾는 데 문제가 있습니다. 클라이언트가 O '또는 O'Connor로 신청자를 검색하려고하면 오류가 발생합니다. 그들은 성 (姓)에 아포스트로피가 있거나없는 모든 신청자를 검색하려고합니다. 제가 모든 것을 시도했지만 도움이되지 않습니다. 필요한아포스트로피 관련 문제
if Rtrim(@FirstName) <> ''
begin
If(Len(@FirstName) < 30) and (CharIndex('%', @FirstName) = 0) and @FirstName != ''
Set @FirstName = char(39) + @FirstName + '%' + char(39)
end
if Rtrim(@LastName) <> ''
begin
If(Len(@LastName) < 60) and (CharIndex('%', @LastName) = 0) and @LastName != ''
Set @LastName = Char(39) + @LastName + '%' + char(39)
end
지금 만든다면
이 dinamically 입력에 필터 기본 당신은 탈출 할 필요가
if Rtrim(@LastName) <> ''
select @Where = @Where + ' and a.LastName like '+ Rtrim(@LastName)
Proc를 실행할 때 아래 오류가 발생합니다. Proc에서 Select 문을 인쇄합니다 - 제한 사항 때문에 전체 문장을 여기에 입력 할 수 없습니다. 다음과 같은 성을 인쇄 할 수 있습니다. 서버 : 메시지 170, 수준 15, 상태 1, 줄 1 : 'O'근처의 구문이 잘못되었습니다. 및 a.LastName like ''O''REILLY % '' – user203671
하나의 아포스트로피를 두 개의 아포스트로피로 바꾸시겠습니까? 당신이 그것을 이중 인용 부호로 바꾸고있는 것처럼 보입니다 - 맞지 않습니다 – Murph
그래서 내가 여기에 내가 가지고있는 코드를 추가해서 인쇄하십시오. 서버 : 메시지 170, 레벨 15, 상태 1, 줄 1 줄 1 : 'REILLY'근처의 구문이 잘못되었습니다. 서버 : 메시지 105, 수준 15, 상태 1, 줄 1 문자열 "전에"닫지 않은 따옴표. 및 'O'REILLY %'와 같은 .LastName – user203671