Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE FUNCTION UDF_InsertDataFromString
- (
- @dataString VARCHAR(5000)
- )
- RETURNS @insertedData TABLE
- (
- NAME VARCHAR(30),
- AGE INT
- )
- AS
- BEGIN
- DECLARE @pipeIndex INT,
- @commaIndex INT,
- @LENGTH INT,
- @NAME VARCHAR(100),
- @AGE INT
- SELECT @LENGTH = LEN(RTRIM(LTRIM(@dataString))),
- @dataString = RTRIM(LTRIM(@dataString))
- WHILE (@LENGTH <> 0)
- BEGIN
- SELECT @LENGTH = LEN(@dataString),
- @commaIndex = CHARINDEX(',', @dataString),
- @pipeIndex = CHARINDEX('|', @dataString)
- IF(@pipeIndex = 0) SET @pipeIndex = @LENGTH +1
- SELECT @NAME = RTRIM(LTRIM(SUBSTRING(@dataString, 1, @commaIndex-1))),
- @AGE = RTRIM(LTRIM(SUBSTRING(@dataString, @commaIndex+1, @pipeIndex-@commaIndex-1))),
- @dataString = RTRIM(LTRIM(SUBSTRING(@dataString, @pipeIndex+1, @LENGTH-@commaIndex-1)))
- INSERT INTO @insertedData(NAME, AGE)
- VALUES(@NAME, @AGE)
- SELECT @LENGTH = LEN(@dataString)
- END
- RETURN
- END
- DECLARE @personDetail TABLE(NAME VARCHAR(30), AGE INT)
- INSERT INTO @personDetail(NAME, AGE)
- SELECT NAME, AGE
- FROM dbo.UDF_InsertDataFromString('Acton,58|Nairi,20|Sara,14|Denny,52')
- SELECT NAME, AGE
- FROM @personDetail
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement