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.
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.
Görüldüğü üzere URL parse etmiş olduk.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.