?
Solved

How to query a CLOB field

Posted on 2008-10-02
5
Medium Priority
?
260 Views
Last Modified: 2011-10-19
Hi.  I have a piece of code that downloads a Clob field into a table and then I parse out the node that I need from the field.  The problem is that there are several nodes that have the same name and I need to be able to filter by the attribute.  I have attached my code as well as a snapshot of what the node tree looks like.  The name of the nodes are all called "item" but they are all have different attribute types.  I am looking for attribute name =  'Type'  and attribute value =  "TX_SALE" but I don't know how to write this in the where statement.  I have selected the first node in my where statement by default but this isn't returning all my data.  I need to be able to filter by attribute.  Can someone help me?
INSERT into #WorkingDataset
SELECT
	CAST(xmlsrc.SITE_NO as Integer)			SITE_NO,
	CAST(xmlsrc.TRAN_DT as DateTime)		TRAN_DT, 
	CAST(xmlsrc.REG_NO as Integer)			REG_NO,
	CAST(xmlsrc.TRAN_NO as Integer)			TRAN_NO,
	CAST(xmlsrc.XML_PENDING as CHAR(1))		XML_Status,
	CAST(xmlsrc.XML_DATA as XML) 			XML_DATA
	
FROM
	[TOMAX_PROD]..[TMX].[TX_STAGING] xmlsrc
	
-----------------------------------------------------------
-- Now that we converted this to xml data we can use,
-- we need to return everything that has a reason_code
-----------------------------------------------------------
SELECT
	Site_No,
	Tran_dt,
	Reg_no,
	Tran_No,
	XML_Status,
	nref.value('itemno[1]', 'VarChar(12)') SKUCode,
	nref.value('quantity[1]', 'Integer') QuantitySold,
	nref.value('reason_code[1]/qty[1]', 'Integer') qty
INTO #ReturnResults	
FROM   
	#WorkingDataset CROSS APPLY XML_Data.nodes('/transaction/item') AS R(nref)
WHERE
	LEN(nref.value('itemno[1]', 'VarChar(12)')) = 6
	
ORDER BY
	Site_No,
	Tran_dt,
	Reg_no,
	Tran_No

Open in new window

0
Comment
Question by:skielark
  • 3
  • 2
5 Comments
 
LVL 53

Assisted Solution

by:Mark Wills
Mark Wills earned 240 total points
ID: 22643553
Can you the XML source data ? just a few... Think you are missing that snapshot as well...
0
 

Author Comment

by:skielark
ID: 22647033
I don't even understand the question.  Can you the XML source data?  What does that mean.
0
 
LVL 53

Assisted Solution

by:Mark Wills
Mark Wills earned 240 total points
ID: 22648941
Yeah - I am having a hard time understanding it myself ...

CLOB returns the contents as a single-row, single-column rowset of type varchar(max), so you may have to use some of the XML facilities.

Can you post a few lines of of your source data... and how you are loading it ?

You mentioned a snapshot that you were attaching, but didn't see it...
0
 
LVL 53

Assisted Solution

by:Mark Wills
Mark Wills earned 240 total points
ID: 22648944
Also, what versions of SQL are you using...
0
 

Accepted Solution

by:
skielark earned 0 total points
ID: 22651820
Mark, I can use either SQL server 2000 or 2005.  I attached the screenshot of the source data with the nodes.
Attribute.doc
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Composite queries are used to retrieve the results from joining multiple queries after applying any filters. UNION, INTERSECT, MINUS, and UNION ALL are some of the operators used to get certain desired results.​
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
With just a little bit of  SQL and VBA, many doors open to cool things like synchronize a list box to display data relevant to other information on a form.  If you have never written code or looked at an SQL statement before, no problem! ...  give i…
Watch the software video of Kernel Import PST to Office 365 tools which can easily import PST and OST files to Office 365 for bulk mailboxes. The process of migration is simple and user can map source and destination mailboxes and easily import data…

589 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question