アプリケーションの 1 つに対して Dynamic SQl でコーディングされた Proc があります。姓で応募者を検索するために使用しています。現在、姓の最初の 2 桁または完全な姓のいずれかで応募者を検索しています。しかし、姓にアポストロフィが含まれる応募者を検索するのに問題があります (オコナーの例)。クライアントが O' または O'Connor で応募者を検索しようとすると、エラーがスローされます。彼らは、姓にアポストロフィの有無にかかわらず、すべての応募者を検索したいと考えています。助けてください私はすべてを試しましたが、うまくいきません。以下は、応募者をプルするために Proc で使用する私の検索コードです。
必要に応じてワイルドカードを追加します
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
ここで、入力パラメーターに基づいてフィルター ベースを動的に構築します。
if Rtrim(@LastName) <> ''
select @Where = @Where + ' and a.LastName like '+ Rtrim(@LastName)