Forum
Merhaba.
varchar türünde bulunan değeri int e dönüştürmek istiyorum. Fakat çevirme fonksiyonları ile yapmama rağmen convert hatası alıyorum. Sizce çözüm yolu ne olabilir? (MSSQL SERVER 2016)
Denediğim yöntemler:
SELECT CAST(YetkiSayfalariID AS int) FROM a_FirmaBilgileri
SELECT CONVERT(INT, YetkiSayfalariID) FROM a_FirmaBilgileri
ve
try_cast, try_convert, try_parse deyimleri
, leri ayıklamanız lazım.
SELECT STRING_SPLIT(YetkiSayfalariID, ',') FROM a_FirmaBilgileri
STRING_SPLIT ile ayırmayı deniyorum fakat STRING_SPLIT fonksiyonunu kullanabilmem için db levelini yükseltmem gerektiğinin uyarısını verdi. Leveli yükseltmeye çalıştığımda da en fazla 110 a çıkarabileceğimi söyledi.
ALTER DATABASE Deneme SET COMPATIBILITY_LEVEL = 130 => çlıştırmam sonucu dönen değer: Valid value of the database compatilibity level are 90, 100 ,110
(MSSQL 2016 aynı zamanda pc de 2012 kurulu tahminime göre 2012 nin ayarlarını görüyor)
Db nize sag click özelliklerden baktınızda level ne durumda ayrıca burdan da yükseltebilirsiniz ,daha sonra sql restart ediniz .
olmadı bir split fonksiyonu siz yazıp o şekilde deneyiniz .
CREATE FUNCTION [dbo].[SplitFonksiyon]
(
@string NVARCHAR(MAX),
@delimiter CHAR(1)
)
RETURNS @output TABLE(splitdata NVARCHAR(MAX)
)
BEGIN
DECLARE @start INT, @end INT
SELECT @start = 1, @end = CHARINDEX(@delimiter, @string)
WHILE @start < LEN(@string) + 1 BEGIN
IF @end = 0
SET @end = LEN(@string) + 1
INSERT INTO @output (splitdata)
VALUES(SUBSTRING(@string, @start, @end - @start))
SET @start = @end + 1
SET @end = CHARINDEX(@delimiter, @string, @start)
END
RETURN
END
select * from dbo.SplitFonksiyon('1,2,3',',') yada
SELECT * FROM dbo.SplitFonksiyon(SELECT TOP 1 YetkiSayfalariID FROM TABLE,',')
1
2
3
şeklinde dönmeli .
Hoacm merhaba,
Öncelikle cevaplarınız içni teşekkür ederim. Bazı özel nedenlerden dolayı cevabı geç yazdım kusura bakmayın. Sorunu C# tarafında split ile ayırıp diziye atarak çözdüm. Yorumunzda ki split kelimesini benim için anahtar kelime oldu saolun
geri bildirim icin teşekkürler .