SQL Server’da URL Parse Etmek

Herkese merhaba. Bu yazıda SQL Server’da URL parse etmek ile ilgili bilgi vereceğim

SQL Server’da bazı durumlarda URL parse etmek isteyebilirsiniz.

Ne demek istediğimi açıklayayım. Aşağıdaki gibi bir URL adresiniz olsun.

https://www.example.com/?utm_source=google&utm_medium=blabla&utm_campaign=gameuser&utm_term=winwin&utm_content=takego

Bu URL adresini aşağıdaki gibi Parse işlemi yapacağız.

SQL Server'da URL Parse Etmek

Aşağıdaki fonksiyonu kullanarak bu işlemi rahatlıkla yapabilirsiniz.

CREATE FUNCTION dbo.ParseQueryString (@url NVARCHAR(MAX))
RETURNS @Result TABLE (
	[Name] NVARCHAR(255)
   ,[Value] NVARCHAR(255)
)
AS
BEGIN
	DECLARE @questionIndex INT = charindex('?', @url)
	DECLARE @queryString NVARCHAR(MAX) = NULL
	DECLARE @startPosition INT = 1
	DECLARE @endPosition INT = 1
	DECLARE @name NVARCHAR(255) = NULL
	DECLARE @value NVARCHAR(255) = NULL

	IF @questionIndex > 0
	BEGIN
		SET @queryString = substring(@url, @questionIndex + 1, LEN(@url))
		SET @startPosition = 1
		SET @endPosition = charindex('&', @queryString)

		WHILE @endPosition > 0
		BEGIN
		SET @name = substring(@queryString, @startPosition, charindex('=', @queryString, @startPosition) - @startPosition)
		SET @value = substring(@queryString, charindex('=', @queryString, @startPosition) + 1, @endPosition - charindex('=', @queryString, @startPosition) - 1)
		INSERT INTO @Result ([Name], [Value])
			VALUES (@name, @value)

		SET @startPosition = @endPosition + 1
		SET @endPosition = charindex('&', @queryString, @startPosition)
		END

		SET @name = substring(@queryString, @startPosition, charindex('=', @queryString, @startPosition) - @startPosition)
		SET @value = substring(@queryString, charindex('=', @queryString, @startPosition) + 1, LEN(@queryString) - charindex('=', @queryString, @startPosition))
		INSERT INTO @Result ([Name], [Value])
			VALUES (@name, @value)
	END

	RETURN
END

--Kullanımı

SELECT
	*
FROM dbo.ParseQueryString('https://www.example.com/?utm_source=google&utm_medium=blabla&utm_campaign=gameuser&utm_term=winwin&utm_content=takego')

Yukarıdaki fonksiyonu oluşturup çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.

SQL Server'da URL Parse Etmek

Görüldüğü üzere URL parse etmiş olduk.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

162 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!