Arkadaşlar sorun şu şekilde çözüldü. Emeği geçen herkese çok teşekkür ederim.
İki aşamada çözüldü. Birinci aşamada FUNCTION ile karakterler dönüştürüldü;
Kod: Tümünü seç
CREATE FUNCTION [dbo].[EMANETTRK]
(@STR NVARCHAR(MAX))
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @TMP NVARCHAR(MAX)
IF @STR IS NULL
SET @TMP = NULL
ELSE
BEGIN
SET @TMP = REPLACE(@STR COLLATE LATIN1_GENERAL_BIN, CHAR(208), NCHAR(286))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), NCHAR(220))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), NCHAR(350))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), NCHAR(304))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), NCHAR(214))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), NCHAR(199))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), NCHAR(287))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), NCHAR(252))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), NCHAR(351))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), NCHAR(246))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), NCHAR(231))
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), NCHAR(305))
END
RETURN @TMP
END
İkinci olarak da PROCEDURE ile sorgulama kriterleri verildi;
Kod: Tümünü seç
ALTER PROC [dbo].[SP_EMANETTRK]
( @STOK_KODU Nvarchar(150) = null ,
@GRUP_KODU Nvarchar(150) = null ,
@KOD_1 Nvarchar(80) = null ,
@KOD_2 Nvarchar(80) = null ,
@KOD_3 Nvarchar(80) = null ,
@KOD_4 Nvarchar(80) = null ,
@KOD_5 Nvarchar(80) = null ,
@DEPO_KODU smallint = null ,
@SUBE_KODU smallint = null )
AS
BEGIN
SELECT DISTINCT STOK_KODU,STOK_ADI,GRUP_KODU GKOD,SATIS_FIAT1,SATIS_FIAT2,SATIS_FIAT3,SATIS_FIAT4,ALIS_FIAT1,ALIS_FIAT2,ALIS_FIAT3,ALIS_FIAT4
FROM TBLSTSABIT
WHERE
ISNULL(dbo.EMANETTRK(STOK_KODU),'') LIKE '%'+ISNULL(COALESCE( NULLIF( @STOK_KODU , N'') , dbo.EMANETTRK(STOK_KODU) ),'') +'%'
AND ISNULL(dbo.EMANETTRK(GRUP_KODU),'') LIKE '%'+ISNULL(COALESCE( NULLIF( @GRUP_KODU , N'') , dbo.EMANETTRK(GRUP_KODU) ),'') +'%'
AND ISNULL(dbo.EMANETTRK(kod_1),'') = ISNULL(COALESCE( NULLIF( @KOD_1 , N'') , dbo.EMANETTRK(kod_1) ),'')
AND ISNULL(dbo.EMANETTRK(kod_2),'') = ISNULL(COALESCE( NULLIF( @KOD_2 , N'') , dbo.EMANETTRK(kod_2) ),'')
AND ISNULL(dbo.EMANETTRK(kod_3),'') = ISNULL(COALESCE( NULLIF( @KOD_3 , N'') , dbo.EMANETTRK(kod_3) ),'')
AND ISNULL(dbo.EMANETTRK(kod_4),'') = ISNULL(COALESCE( NULLIF( @KOD_4 , N'') , dbo.EMANETTRK(kod_4) ),'')
AND ISNULL(dbo.EMANETTRK(kod_5),'') = ISNULL(COALESCE( NULLIF( @KOD_5 , N'') , dbo.EMANETTRK(kod_5) ),'')
AND ISNULL(dbo.EMANETTRK(DEPO_KODU),'') = ISNULL(COALESCE( NULLIF( @DEPO_KODU ,N'') , dbo.EMANETTRK(DEPO_KODU)),'')
AND ISNULL(dbo.EMANETTRK(SUBE_KODU),'') = ISNULL(COALESCE( NULLIF( @SUBE_KODU ,N'') , dbo.EMANETTRK(SUBE_KODU)),'')
END
GO
Tek Procedure haline getirebilirmiydi onu yapamadım.