XML Data column

i have table with about 10000 rows,  there is a column named  Raw_XMLData is defined as varchar but data is xml format.  

try to insert into another table, if Raw_XMLData column has is valid xml data?

is it possible to do in T sql?

Thanks

V

May 29th, 2015 7:57pm

yes, it should be possible.. try this sample below

data in table B is xml and data in table A is varchar

declare @a table(sname varchar(max))
Insert into @a(sname)
select (select name,dbid,crdate from master.dbo.sysdatabases
for XML Path('DatabaseDetails'))

declare @b table(Sname xml)
insert into @b
Select *  from @a

select * from @b

Free Windows Admin Tool Kit Click here and download it now
May 29th, 2015 8:30pm

Hi Vaishu

Regarding your description, to achieve your requirement, you can reference the below sample.

DECLARE @varTbl TABLE (ID INT,col varchar(max))
INSERT INTO @varTbl 
SELECT 1,'<Person><name>Rose</name></Person>' --valid XML
UNION ALL
SELECT 2,'T<Person><name>Rose</name>' --invalid XML
UNION ALL
SELECT 3,'<name>Rose</name>' --valid XML
--For SQL Server 2012 or later
SELECT TRY_CONVERT(xml,col) from @varTbl
SELECT * FROM @varTbl WHERE TRY_CONVERT(xml,col) IS NOT NULL
--For SQL Server 2008
DECLARE MyCursor CURSOR FOR SELECT ID,col FROM @varTbl
DECLARE @varCol VARCHAR(MAX)
DECLARE @varID INT
DECLARE @tableInvalid TABLE (ID INT) -- This table to contain invliad XML IDs
OPEN MyCursor
FETCH NEXT FROM MyCursor 
INTO @varID,@varCol
WHILE @@FETCH_STATUS = 0
BEGIN
     BEGIN TRY
	 DECLARE @varXML XML
     SET @varXML=CAST(@varCol AS XML)
	 FETCH NEXT FROM MyCursor 
     INTO @varID,@varCol
	 END TRY
	 BEGIN CATCH
	 INSERT INTO @tableInvalid SELECT @varID --Insert invalid XML ID 
	 FETCH NEXT FROM MyCursor 
     INTO @varID,@varCol
	 END CATCH
END 
CLOSE MyCursor;
DEALLOCATE MyCursor;
SELECT * FROM @varTbl WHERE ID NOT IN(SELECT ID FROM @tableInvalid)
 
If you have any feedback on our support, you can click here.
May 31st, 2015 3:12am

This topic is archived. No further replies will be accepted.

Other recent topics Other recent topics