Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
SQL Sorguda Türkçe Sorunu
#31
(12-09-2020, Saat: 13:48)esistem Adlı Kullanıcıdan Alıntı: O zaman o karakter temizliği olayında sıkıntı var bence.

Evet olabilir ama ne yaptıysam çözemedim. Yardımcı olabilir misin?
Cevapla
#32
Türkçe karakterleri alt tire'ye çeviriyorsun sanırım ondan olabilir sorun, türkçe karakter olmayan bi kaydı arayın bakalım ne çıkıcak sonuç?
WWW
Cevapla
#33
(12-09-2020, Saat: 13:51)esistem Adlı Kullanıcıdan Alıntı: Türkçe karakterleri alt tire'ye çeviriyorsun sanırım ondan olabilir sorun, türkçe karakter olmayan bi kaydı arayın bakalım ne çıkıcak sonuç?

STOK_KODU na göre de aradım GRUP_KODU na görede boş geliyor.

EXEC SP_RAPOR1 @GRUP_KODU = 'PEYMAN' ,
EXEC SP_RAPOR1 @STOK_KODU = '1200363' 
Cevapla
#34
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ü;

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;

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.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Vcl.ActnCtrls Sorunu MuhammedYasir 7 509 12-08-2020, Saat: 11:29
Son Yorum: MuhammedYasir
  Port kapatma sorunu. seci20 0 151 10-08-2020, Saat: 15:28
Son Yorum: seci20
  Locate ve Lookup TR Karakter sorunu narkotik 3 1.680 15-06-2020, Saat: 16:49
Son Yorum: samsaros@gmail.com
  Delphi 10.3 Rest Debugger sorunu varyemez 4 753 31-05-2020, Saat: 01:36
Son Yorum: varyemez
  OrangeUI çoklu dil sorunu nguzeller 0 360 17-05-2020, Saat: 12:15
Son Yorum: nguzeller



Konuyu Okuyanlar: 1 Ziyaretçi