Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
SQL
ce
clients
clustering
connect
datamining
datawarehouse
dts
fulltext
jdbcdriver
msde
mseq
newusers
notificationsvcs
odbc
olap
programming
replication
reportingsvcs
security
securitytools
server
setup
sqlxml.viewmapper
tools
xml
  
 
date: Thu, 3 Jul 2008 13:11:03 -0700 (PDT),    group: microsoft.public.sqlserver.xml        back       


newbie to xpath/xquery trying to pull email address out of xml in SSRS subscription table   
i'm trying to pull out email addresses info from the SSRS subscription
table.  The xml looks like this:

<ParameterValues>
	<ParameterValue>
		<Name>TO</Name>
		<Value>pep1@myemail.com;pep2@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>BCC</Name>
		<Value>pep3@myemail.com;pep4@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>ReplyTo</Name>
		<Value>pep5@myemail.com;pep6@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>IncludeReport</Name>
		<Value>True</Value></ParameterValue>
	<ParameterValue>
		<Name>RenderFormat</Name>
		<Value>EXCEL</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Subject</Name>
		<Value>@ReportName was executed at @ExecutionTime</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Priority</Name>
		<Value>NORMAL</Value>
	</ParameterValue></ParameterValues>
</ParameterValues>


I have not been able to figure out the correct syntax with xpath or
xquery...my logic is as follows:

pull the 'value' data when it's sibling <Name> value = "TO"

I've done the following:

SELECT SubscriptionID, extensionSettings,
CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
'varchar(max)') AS col1,
CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
'varchar(max)') AS col2,
CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
'varchar(max)') AS col3
from Subscriptions

which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
cannot assume the 2nd value is always of 'CC' type...

I've also tried:
SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
="TO"]/Value)','varchar(max)') AS col1
from Subscriptions

but this generates an error about " 'value()' requires a
singleton...."

anyone provide an example of how to accomplish this?

thanks.
date: Thu, 3 Jul 2008 13:11:03 -0700 (PDT)   author:   unknown

RE: newbie to xpath/xquery trying to pull email address out of xml in   
Try this:

DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY, 
extensionSettings XML )

DECLARE @xml XML

INSERT INTO @subscriptions VALUES ( '
<ParameterValues>
	<ParameterValue>
		<Name>TO</Name>
		<Value>pep1@myemail.com;pep2@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>BCC</Name>
		<Value>pep3@myemail.com;pep4@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>ReplyTo</Name>
		<Value>pep5@myemail.com;pep6@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>IncludeReport</Name>
		<Value>True</Value></ParameterValue>
	<ParameterValue>
		<Name>RenderFormat</Name>
		<Value>EXCEL</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Subject</Name>
		<Value>@ReportName was executed at @ExecutionTime</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Priority</Name>
		<Value>NORMAL</Value>
	</ParameterValue>
</ParameterValues>' )

-- pull the 'value' data when it's sibling <Name> value = "TO"
SELECT 
	--c.d.value('local-name', 'VARCHAR(30)'),
	e.a.value('.', 'VARCHAR(30)') x,
	-- OR
	e.a.value('(text())[1]', 'VARCHAR(30)') y

FROM @subscriptions
CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name = 
"BCC" or Name = "ReplyTo"]/Value') e(a)

HTH
wBob


"kent.eilers@res-direct.com" wrote:

> i'm trying to pull out email addresses info from the SSRS subscription
> table.  The xml looks like this:
> 
> <ParameterValues>
> 	<ParameterValue>
> 		<Name>TO</Name>
> 		<Value>pep1@myemail.com;pep2@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>BCC</Name>
> 		<Value>pep3@myemail.com;pep4@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>ReplyTo</Name>
> 		<Value>pep5@myemail.com;pep6@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>IncludeReport</Name>
> 		<Value>True</Value></ParameterValue>
> 	<ParameterValue>
> 		<Name>RenderFormat</Name>
> 		<Value>EXCEL</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>Subject</Name>
> 		<Value>@ReportName was executed at @ExecutionTime</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>Priority</Name>
> 		<Value>NORMAL</Value>
> 	</ParameterValue></ParameterValues>
> </ParameterValues>
> 
> 
> I have not been able to figure out the correct syntax with xpath or
> xquery...my logic is as follows:
> 
> pull the 'value' data when it's sibling <Name> value = "TO"
> 
> I've done the following:
> 
> SELECT SubscriptionID, extensionSettings,
> CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> 'varchar(max)') AS col1,
> CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> 'varchar(max)') AS col2,
> CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> 'varchar(max)') AS col3
> from Subscriptions
> 
> which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> cannot assume the 2nd value is always of 'CC' type...
> 
> I've also tried:
> SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> ="TO"]/Value)','varchar(max)') AS col1
> from Subscriptions
> 
> but this generates an error about " 'value()' requires a
> singleton...."
> 
> anyone provide an example of how to accomplish this?
> 
> thanks.
>
date: Thu, 3 Jul 2008 14:43:01 -0700   author:   Bob

RE: newbie to xpath/xquery trying to pull email address out of xml   
And shred it.  And use a longer VARCHAR ...

DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY, 
extensionSettings XML )

DECLARE @xml XML

INSERT INTO @subscriptions VALUES ( '
<ParameterValues>
	<ParameterValue>
		<Name>TO</Name>
		<Value>pep1@myemail.com;pep2@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>BCC</Name>
		<Value>pep3@myemail.com;pep4@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>ReplyTo</Name>
		<Value>pep5@myemail.com;pep6@myemail.com</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>IncludeReport</Name>
		<Value>True</Value></ParameterValue>
	<ParameterValue>
		<Name>RenderFormat</Name>
		<Value>EXCEL</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Subject</Name>
		<Value>@ReportName was executed at @ExecutionTime</Value>
	</ParameterValue>
	<ParameterValue>
		<Name>Priority</Name>
		<Value>NORMAL</Value>
	</ParameterValue>
</ParameterValues>' )


SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
FROM @subscriptions
CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name = 
"BCC" or Name = "ReplyTo"]') e(a)


DECLARE @emails TABLE ( email XML )

INSERT INTO @emails ( email )
SELECT '<email>' + REPLACE( y, ';', '</email><email>' )   + '</email>' email
FROM
	(
	SELECT 
		e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
	FROM @subscriptions
	CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name = 
"BCC" or Name = "ReplyTo"]') e(a)
	) x

-- And shred it
SELECT x.y.value('.', 'VARCHAR(50)')
FROM @emails
CROSS APPLY email.nodes('email') x(y)


"Bob" wrote:

> Try this:
> 
> DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY, 
> extensionSettings XML )
> 
> DECLARE @xml XML
> 
> INSERT INTO @subscriptions VALUES ( '
> <ParameterValues>
> 	<ParameterValue>
> 		<Name>TO</Name>
> 		<Value>pep1@myemail.com;pep2@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>BCC</Name>
> 		<Value>pep3@myemail.com;pep4@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>ReplyTo</Name>
> 		<Value>pep5@myemail.com;pep6@myemail.com</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>IncludeReport</Name>
> 		<Value>True</Value></ParameterValue>
> 	<ParameterValue>
> 		<Name>RenderFormat</Name>
> 		<Value>EXCEL</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>Subject</Name>
> 		<Value>@ReportName was executed at @ExecutionTime</Value>
> 	</ParameterValue>
> 	<ParameterValue>
> 		<Name>Priority</Name>
> 		<Value>NORMAL</Value>
> 	</ParameterValue>
> </ParameterValues>' )
> 
> -- pull the 'value' data when it's sibling <Name> value = "TO"
> SELECT 
> 	--c.d.value('local-name', 'VARCHAR(30)'),
> 	e.a.value('.', 'VARCHAR(30)') x,
> 	-- OR
> 	e.a.value('(text())[1]', 'VARCHAR(30)') y
> 
> FROM @subscriptions
> CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name = 
> "BCC" or Name = "ReplyTo"]/Value') e(a)
> 
> HTH
> wBob
> 
> 
> "kent.eilers@res-direct.com" wrote:
> 
> > i'm trying to pull out email addresses info from the SSRS subscription
> > table.  The xml looks like this:
> > 
> > <ParameterValues>
> > 	<ParameterValue>
> > 		<Name>TO</Name>
> > 		<Value>pep1@myemail.com;pep2@myemail.com</Value>
> > 	</ParameterValue>
> > 	<ParameterValue>
> > 		<Name>BCC</Name>
> > 		<Value>pep3@myemail.com;pep4@myemail.com</Value>
> > 	</ParameterValue>
> > 	<ParameterValue>
> > 		<Name>ReplyTo</Name>
> > 		<Value>pep5@myemail.com;pep6@myemail.com</Value>
> > 	</ParameterValue>
> > 	<ParameterValue>
> > 		<Name>IncludeReport</Name>
> > 		<Value>True</Value></ParameterValue>
> > 	<ParameterValue>
> > 		<Name>RenderFormat</Name>
> > 		<Value>EXCEL</Value>
> > 	</ParameterValue>
> > 	<ParameterValue>
> > 		<Name>Subject</Name>
> > 		<Value>@ReportName was executed at @ExecutionTime</Value>
> > 	</ParameterValue>
> > 	<ParameterValue>
> > 		<Name>Priority</Name>
> > 		<Value>NORMAL</Value>
> > 	</ParameterValue></ParameterValues>
> > </ParameterValues>
> > 
> > 
> > I have not been able to figure out the correct syntax with xpath or
> > xquery...my logic is as follows:
> > 
> > pull the 'value' data when it's sibling <Name> value = "TO"
> > 
> > I've done the following:
> > 
> > SELECT SubscriptionID, extensionSettings,
> > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > 'varchar(max)') AS col1,
> > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > 'varchar(max)') AS col2,
> > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > 'varchar(max)') AS col3
> > from Subscriptions
> > 
> > which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> > cannot assume the 2nd value is always of 'CC' type...
> > 
> > I've also tried:
> > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > ="TO"]/Value)','varchar(max)') AS col1
> > from Subscriptions
> > 
> > but this generates an error about " 'value()' requires a
> > singleton...."
> > 
> > anyone provide an example of how to accomplish this?
> > 
> > thanks.
> >
date: Thu, 3 Jul 2008 15:53:00 -0700   author:   Bob

Re: newbie to xpath/xquery trying to pull email address out of xml   
On Jul 3, 5:53 pm, Bob  wrote:
> And shred it.  And use a longer VARCHAR ...
>
> DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> extensionSettings XML )
>
> DECLARE @xml XML
>
> INSERT INTO @subscriptions VALUES ( '
> <ParameterValues>
>         <ParameterValue>
>                 <Name>TO</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>BCC</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>ReplyTo</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>IncludeReport</Name>
>                 <Value>True</Value></ParameterValue>
>         <ParameterValue>
>                 <Name>RenderFormat</Name>
>                 <Value>EXCEL</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>Subject</Name>
>                 <Value>@ReportName was executed at @ExecutionTime</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>Priority</Name>
>                 <Value>NORMAL</Value>
>         </ParameterValue>
> </ParameterValues>' )
>
> SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> FROM @subscriptions
> CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> "BCC" or Name = "ReplyTo"]') e(a)
>
> DECLARE @emails TABLE ( email XML )
>
> INSERT INTO @emails ( email )
> SELECT '<email>'  REPLACE( y, ';', '</email><email>' )    '</email>' email
> FROM
>         (
>         SELECT
>                 e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
>         FROM @subscriptions
>         CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> "BCC" or Name = "ReplyTo"]') e(a)
>         ) x
>
> -- And shred it
> SELECT x.y.value('.', 'VARCHAR(50)')
> FROM @emails
> CROSS APPLY email.nodes('email') x(y)
>
> "Bob" wrote:
> > Try this:
>
> > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > extensionSettings XML )
>
> > DECLARE @xml XML
>
> > INSERT INTO @subscriptions VALUES ( '
> > <ParameterValues>
> >    <ParameterValue>
> >            <Name>TO</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>BCC</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>ReplyTo</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>IncludeReport</Name>
> >            <Value>True</Value></ParameterValue>
> >    <ParameterValue>
> >            <Name>RenderFormat</Name>
> >            <Value>EXCEL</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>Subject</Name>
> >            <Value>@ReportName was executed at @ExecutionTime</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>Priority</Name>
> >            <Value>NORMAL</Value>
> >    </ParameterValue>
> > </ParameterValues>' )
>
> > -- pull the 'value' data when it's sibling <Name> value = "TO"
> > SELECT
> >    --c.d.value('local-name', 'VARCHAR(30)'),
> >    e.a.value('.', 'VARCHAR(30)') x,
> >    -- OR
> >    e.a.value('(text())[1]', 'VARCHAR(30)') y
>
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]/Value') e(a)
>
> > HTH
> > wBob
>
> > "kent.eil...@res-direct.com" wrote:
>
> > > i'm trying to pull out email addresses info from the SSRS subscription
> > > table.  The xml looks like this:
>
> > > <ParameterValues>
> > >       <ParameterValue>
> > >               <Name>TO</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>BCC</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>ReplyTo</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>IncludeReport</Name>
> > >               <Value>True</Value></ParameterValue>
> > >       <ParameterValue>
> > >               <Name>RenderFormat</Name>
> > >               <Value>EXCEL</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>Subject</Name>
> > >               <Value>@ReportName was executed at @ExecutionTime</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>Priority</Name>
> > >               <Value>NORMAL</Value>
> > >       </ParameterValue></ParameterValues>
> > > </ParameterValues>
>
> > > I have not been able to figure out the correct syntax with xpath or
> > > xquery...my logic is as follows:
>
> > > pull the 'value' data when it's sibling <Name> value = "TO"
>
> > > I've done the following:
>
> > > SELECT SubscriptionID, extensionSettings,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > > 'varchar(max)') AS col1,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > > 'varchar(max)') AS col2,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > > 'varchar(max)') AS col3
> > > from Subscriptions
>
> > > which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> > > cannot assume the 2nd value is always of 'CC' type...
>
> > > I've also tried:
> > > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > > ="TO"]/Value)','varchar(max)') AS col1
> > > from Subscriptions
>
> > > but this generates an error about " 'value()' requires a
> > > singleton...."
>
> > > anyone provide an example of how to accomplish this?
>
> > > thanks.

wow - it works too!

very nice...i'll have to look at this carefully..

Thanks !
date: Mon, 7 Jul 2008 05:57:26 -0700 (PDT)   author:   unknown

Re: newbie to xpath/xquery trying to pull email address out of xml   
On Jul 3, 5:53 pm, Bob  wrote:
> And shred it.  And use a longer VARCHAR ...
>
> DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> extensionSettings XML )
>
> DECLARE @xml XML
>
> INSERT INTO @subscriptions VALUES ( '
> <ParameterValues>
>         <ParameterValue>
>                 <Name>TO</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>BCC</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>ReplyTo</Name>
>                 <Value>p...@myemail.com;p...@myemail.com</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>IncludeReport</Name>
>                 <Value>True</Value></ParameterValue>
>         <ParameterValue>
>                 <Name>RenderFormat</Name>
>                 <Value>EXCEL</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>Subject</Name>
>                 <Value>@ReportName was executed at @ExecutionTime</Value>
>         </ParameterValue>
>         <ParameterValue>
>                 <Name>Priority</Name>
>                 <Value>NORMAL</Value>
>         </ParameterValue>
> </ParameterValues>' )
>
> SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> FROM @subscriptions
> CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> "BCC" or Name = "ReplyTo"]') e(a)
>
> DECLARE @emails TABLE ( email XML )
>
> INSERT INTO @emails ( email )
> SELECT '<email>'  REPLACE( y, ';', '</email><email>' )    '</email>' email
> FROM
>         (
>         SELECT
>                 e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
>         FROM @subscriptions
>         CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> "BCC" or Name = "ReplyTo"]') e(a)
>         ) x
>
> -- And shred it
> SELECT x.y.value('.', 'VARCHAR(50)')
> FROM @emails
> CROSS APPLY email.nodes('email') x(y)
>
> "Bob" wrote:
> > Try this:
>
> > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > extensionSettings XML )
>
> > DECLARE @xml XML
>
> > INSERT INTO @subscriptions VALUES ( '
> > <ParameterValues>
> >    <ParameterValue>
> >            <Name>TO</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>BCC</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>ReplyTo</Name>
> >            <Value>p...@myemail.com;p...@myemail.com</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>IncludeReport</Name>
> >            <Value>True</Value></ParameterValue>
> >    <ParameterValue>
> >            <Name>RenderFormat</Name>
> >            <Value>EXCEL</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>Subject</Name>
> >            <Value>@ReportName was executed at @ExecutionTime</Value>
> >    </ParameterValue>
> >    <ParameterValue>
> >            <Name>Priority</Name>
> >            <Value>NORMAL</Value>
> >    </ParameterValue>
> > </ParameterValues>' )
>
> > -- pull the 'value' data when it's sibling <Name> value = "TO"
> > SELECT
> >    --c.d.value('local-name', 'VARCHAR(30)'),
> >    e.a.value('.', 'VARCHAR(30)') x,
> >    -- OR
> >    e.a.value('(text())[1]', 'VARCHAR(30)') y
>
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]/Value') e(a)
>
> > HTH
> > wBob
>
> > "kent.eil...@res-direct.com" wrote:
>
> > > i'm trying to pull out email addresses info from the SSRS subscription
> > > table.  The xml looks like this:
>
> > > <ParameterValues>
> > >       <ParameterValue>
> > >               <Name>TO</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>BCC</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>ReplyTo</Name>
> > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>IncludeReport</Name>
> > >               <Value>True</Value></ParameterValue>
> > >       <ParameterValue>
> > >               <Name>RenderFormat</Name>
> > >               <Value>EXCEL</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>Subject</Name>
> > >               <Value>@ReportName was executed at @ExecutionTime</Value>
> > >       </ParameterValue>
> > >       <ParameterValue>
> > >               <Name>Priority</Name>
> > >               <Value>NORMAL</Value>
> > >       </ParameterValue></ParameterValues>
> > > </ParameterValues>
>
> > > I have not been able to figure out the correct syntax with xpath or
> > > xquery...my logic is as follows:
>
> > > pull the 'value' data when it's sibling <Name> value = "TO"
>
> > > I've done the following:
>
> > > SELECT SubscriptionID, extensionSettings,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > > 'varchar(max)') AS col1,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > > 'varchar(max)') AS col2,
> > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > > 'varchar(max)') AS col3
> > > from Subscriptions
>
> > > which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> > > cannot assume the 2nd value is always of 'CC' type...
>
> > > I've also tried:
> > > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > > ="TO"]/Value)','varchar(max)') AS col1
> > > from Subscriptions
>
> > > but this generates an error about " 'value()' requires a
> > > singleton...."
>
> > > anyone provide an example of how to accomplish this?
>
> > > thanks.

Bob - where is the  "extensionSettings.nodes" function documented?

Thanks
date: Tue, 8 Jul 2008 06:02:07 -0700 (PDT)   author:   unknown

Re: newbie to xpath/xquery trying to pull email address out of xml   
New in SQL2005, the xml datatype has methods you can use against it.  Start 
in Books Online (BOL) here:

XQuery Against the xml Data Type

"kent.eilers@res-direct.com" wrote:

> On Jul 3, 5:53 pm, Bob  wrote:
> > And shred it.  And use a longer VARCHAR ...
> >
> > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > extensionSettings XML )
> >
> > DECLARE @xml XML
> >
> > INSERT INTO @subscriptions VALUES ( '
> > <ParameterValues>
> >         <ParameterValue>
> >                 <Name>TO</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>BCC</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>ReplyTo</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>IncludeReport</Name>
> >                 <Value>True</Value></ParameterValue>
> >         <ParameterValue>
> >                 <Name>RenderFormat</Name>
> >                 <Value>EXCEL</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>Subject</Name>
> >                 <Value>@ReportName was executed at @ExecutionTime</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>Priority</Name>
> >                 <Value>NORMAL</Value>
> >         </ParameterValue>
> > </ParameterValues>' )
> >
> > SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
> >
> > DECLARE @emails TABLE ( email XML )
> >
> > INSERT INTO @emails ( email )
> > SELECT '<email>' + REPLACE( y, ';', '</email><email>' )   + '</email>' email
> > FROM
> >         (
> >         SELECT
> >                 e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> >         FROM @subscriptions
> >         CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
> >         ) x
> >
> > -- And shred it
> > SELECT x.y.value('.', 'VARCHAR(50)')
> > FROM @emails
> > CROSS APPLY email.nodes('email') x(y)
> >
> > "Bob" wrote:
> > > Try this:
> >
> > > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > > extensionSettings XML )
> >
> > > DECLARE @xml XML
> >
> > > INSERT INTO @subscriptions VALUES ( '
> > > <ParameterValues>
> > >    <ParameterValue>
> > >            <Name>TO</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>BCC</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>ReplyTo</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>IncludeReport</Name>
> > >            <Value>True</Value></ParameterValue>
> > >    <ParameterValue>
> > >            <Name>RenderFormat</Name>
> > >            <Value>EXCEL</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>Subject</Name>
> > >            <Value>@ReportName was executed at @ExecutionTime</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>Priority</Name>
> > >            <Value>NORMAL</Value>
> > >    </ParameterValue>
> > > </ParameterValues>' )
> >
> > > -- pull the 'value' data when it's sibling <Name> value = "TO"
> > > SELECT
> > >    --c.d.value('local-name', 'VARCHAR(30)'),
> > >    e.a.value('.', 'VARCHAR(30)') x,
> > >    -- OR
> > >    e.a.value('(text())[1]', 'VARCHAR(30)') y
> >
> > > FROM @subscriptions
> > > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > > "BCC" or Name = "ReplyTo"]/Value') e(a)
> >
> > > HTH
> > > wBob
> >
> > > "kent.eil...@res-direct.com" wrote:
> >
> > > > i'm trying to pull out email addresses info from the SSRS subscription
> > > > table.  The xml looks like this:
> >
> > > > <ParameterValues>
> > > >       <ParameterValue>
> > > >               <Name>TO</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>BCC</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>ReplyTo</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>IncludeReport</Name>
> > > >               <Value>True</Value></ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>RenderFormat</Name>
> > > >               <Value>EXCEL</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>Subject</Name>
> > > >               <Value>@ReportName was executed at @ExecutionTime</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>Priority</Name>
> > > >               <Value>NORMAL</Value>
> > > >       </ParameterValue></ParameterValues>
> > > > </ParameterValues>
> >
> > > > I have not been able to figure out the correct syntax with xpath or
> > > > xquery...my logic is as follows:
> >
> > > > pull the 'value' data when it's sibling <Name> value = "TO"
> >
> > > > I've done the following:
> >
> > > > SELECT SubscriptionID, extensionSettings,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > > > 'varchar(max)') AS col1,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > > > 'varchar(max)') AS col2,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > > > 'varchar(max)') AS col3
> > > > from Subscriptions
> >
> > > > which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> > > > cannot assume the 2nd value is always of 'CC' type...
> >
> > > > I've also tried:
> > > > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > > > ="TO"]/Value)','varchar(max)') AS col1
> > > > from Subscriptions
> >
> > > > but this generates an error about " 'value()' requires a
> > > > singleton...."
> >
> > > > anyone provide an example of how to accomplish this?
> >
> > > > thanks.
> 
> Bob - where is the  "extensionSettings.nodes" function documented?
> 
> Thanks
>
date: Tue, 8 Jul 2008 06:56:09 -0700   author:   Bob

Re: newbie to xpath/xquery trying to pull email address out of xml   
On Jul 7, 7:57 am, kent.eil...@res-direct.com wrote:
> On Jul 3, 5:53 pm, Bob  wrote:
>
>
>
> > And shred it.  And use a longer VARCHAR ...
>
> > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > extensionSettings XML )
>
> > DECLARE @xml XML
>
> > INSERT INTO @subscriptions VALUES ( '
> > <ParameterValues>
> >         <ParameterValue>
> >                 <Name>TO</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>BCC</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>ReplyTo</Name>
> >                 <Value>p...@myemail.com;p...@myemail.com</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>IncludeReport</Name>
> >                 <Value>True</Value></ParameterValue>
> >         <ParameterValue>
> >                 <Name>RenderFormat</Name>
> >                 <Value>EXCEL</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>Subject</Name>
> >                 <Value>@ReportName was executed at @ExecutionTime</Value>
> >         </ParameterValue>
> >         <ParameterValue>
> >                 <Name>Priority</Name>
> >                 <Value>NORMAL</Value>
> >         </ParameterValue>
> > </ParameterValues>' )
>
> > SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
>
> > DECLARE @emails TABLE ( email XML )
>
> > INSERT INTO @emails ( email )
> > SELECT '<email>'  REPLACE( y, ';', '</email><email>' )    '</email>' email
> > FROM
> >         (
> >         SELECT
> >                 e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> >         FROM @subscriptions
> >         CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
> >         ) x
>
> > -- And shred it
> > SELECT x.y.value('.', 'VARCHAR(50)')
> > FROM @emails
> > CROSS APPLY email.nodes('email') x(y)
>
> > "Bob" wrote:
> > > Try this:
>
> > > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > > extensionSettings XML )
>
> > > DECLARE @xml XML
>
> > > INSERT INTO @subscriptions VALUES ( '
> > > <ParameterValues>
> > >    <ParameterValue>
> > >            <Name>TO</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>BCC</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>ReplyTo</Name>
> > >            <Value>p...@myemail.com;p...@myemail.com</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>IncludeReport</Name>
> > >            <Value>True</Value></ParameterValue>
> > >    <ParameterValue>
> > >            <Name>RenderFormat</Name>
> > >            <Value>EXCEL</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>Subject</Name>
> > >            <Value>@ReportName was executed at @ExecutionTime</Value>
> > >    </ParameterValue>
> > >    <ParameterValue>
> > >            <Name>Priority</Name>
> > >            <Value>NORMAL</Value>
> > >    </ParameterValue>
> > > </ParameterValues>' )
>
> > > -- pull the 'value' data when it's sibling <Name> value = "TO"
> > > SELECT
> > >    --c.d.value('local-name', 'VARCHAR(30)'),
> > >    e.a.value('.', 'VARCHAR(30)') x,
> > >    -- OR
> > >    e.a.value('(text())[1]', 'VARCHAR(30)') y
>
> > > FROM @subscriptions
> > > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or Name =
> > > "BCC" or Name = "ReplyTo"]/Value') e(a)
>
> > > HTH
> > > wBob
>
> > > "kent.eil...@res-direct.com" wrote:
>
> > > > i'm trying to pull out email addresses info from the SSRS subscription
> > > > table.  The xml looks like this:
>
> > > > <ParameterValues>
> > > >       <ParameterValue>
> > > >               <Name>TO</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>BCC</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>ReplyTo</Name>
> > > >               <Value>p...@myemail.com;p...@myemail.com</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>IncludeReport</Name>
> > > >               <Value>True</Value></ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>RenderFormat</Name>
> > > >               <Value>EXCEL</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>Subject</Name>
> > > >               <Value>@ReportName was executed at @ExecutionTime</Value>
> > > >       </ParameterValue>
> > > >       <ParameterValue>
> > > >               <Name>Priority</Name>
> > > >               <Value>NORMAL</Value>
> > > >       </ParameterValue></ParameterValues>
> > > > </ParameterValues>
>
> > > > I have not been able to figure out the correct syntax with xpath or
> > > > xquery...my logic is as follows:
>
> > > > pull the 'value' data when it's sibling <Name> value = "TO"
>
> > > > I've done the following:
>
> > > > SELECT SubscriptionID, extensionSettings,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > > > 'varchar(max)') AS col1,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > > > 'varchar(max)') AS col2,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > > > 'varchar(max)') AS col3
> > > > from Subscriptions
>
> > > > which gets me the To, CC, & BCC data into output columns 1,2,3.  but I
> > > > cannot assume the 2nd value is always of 'CC' type...
>
> > > > I've also tried:
> > > > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > > > ="TO"]/Value)','varchar(max)') AS col1
> > > > from Subscriptions
>
> > > > but this generates an error about " 'value()' requires a
> > > > singleton...."
>
> > > > anyone provide an example of how to accomplish this?
>
> > > > thanks.
>
> wow - it works too!
>
> very nice...i'll have to look at this carefully..
>
> Thanks !

btw..do you know where any documentation on the
extensionSettings.nodes function is?

thanks.
date: Tue, 8 Jul 2008 13:02:31 -0700 (PDT)   author:   unknown

Re: newbie to xpath/xquery trying to pull email address out of xml   
http://msdn.microsoft.com/en-us/library/ms188282.aspx

-- 

========
Michael Coles
"Pro SQL Server 2008 XML"
http://www.amazon.com/Pro-SQL-Server-2008-XML/dp/1590599837/


 wrote in message 
news:6b33f811-e9ab-47dd-9742-d3baa566ce71@p25g2000hsf.googlegroups.com...
On Jul 7, 7:57 am, kent.eil...@res-direct.com wrote:
> On Jul 3, 5:53 pm, Bob  wrote:
>
>
>
> > And shred it. And use a longer VARCHAR ...
>
> > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY KEY,
> > extensionSettings XML )
>
> > DECLARE @xml XML
>
> > INSERT INTO @subscriptions VALUES ( '
> > <ParameterValues>
> > <ParameterValue>
> > <Name>TO</Name>
> > <Value>p...@myemail.com;p...@myemail.com</Value>
> > </ParameterValue>
> > <ParameterValue>
> > <Name>BCC</Name>
> > <Value>p...@myemail.com;p...@myemail.com</Value>
> > </ParameterValue>
> > <ParameterValue>
> > <Name>ReplyTo</Name>
> > <Value>p...@myemail.com;p...@myemail.com</Value>
> > </ParameterValue>
> > <ParameterValue>
> > <Name>IncludeReport</Name>
> > <Value>True</Value></ParameterValue>
> > <ParameterValue>
> > <Name>RenderFormat</Name>
> > <Value>EXCEL</Value>
> > </ParameterValue>
> > <ParameterValue>
> > <Name>Subject</Name>
> > <Value>@ReportName was executed at @ExecutionTime</Value>
> > </ParameterValue>
> > <ParameterValue>
> > <Name>Priority</Name>
> > <Value>NORMAL</Value>
> > </ParameterValue>
> > </ParameterValues>' )
>
> > SELECT e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or 
> > Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
>
> > DECLARE @emails TABLE ( email XML )
>
> > INSERT INTO @emails ( email )
> > SELECT '<email>' + REPLACE( y, ';', '</email><email>' ) + '</email>' 
> > email
> > FROM
> > (
> > SELECT
> > e.a.value('(Value/text())[1]', 'VARCHAR(50)') y
> > FROM @subscriptions
> > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or 
> > Name =
> > "BCC" or Name = "ReplyTo"]') e(a)
> > ) x
>
> > -- And shred it
> > SELECT x.y.value('.', 'VARCHAR(50)')
> > FROM @emails
> > CROSS APPLY email.nodes('email') x(y)
>
> > "Bob" wrote:
> > > Try this:
>
> > > DECLARE @subscriptions TABLE ( SubscriptionID INT IDENTITY PRIMARY 
> > > KEY,
> > > extensionSettings XML )
>
> > > DECLARE @xml XML
>
> > > INSERT INTO @subscriptions VALUES ( '
> > > <ParameterValues>
> > > <ParameterValue>
> > > <Name>TO</Name>
> > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > </ParameterValue>
> > > <ParameterValue>
> > > <Name>BCC</Name>
> > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > </ParameterValue>
> > > <ParameterValue>
> > > <Name>ReplyTo</Name>
> > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > </ParameterValue>
> > > <ParameterValue>
> > > <Name>IncludeReport</Name>
> > > <Value>True</Value></ParameterValue>
> > > <ParameterValue>
> > > <Name>RenderFormat</Name>
> > > <Value>EXCEL</Value>
> > > </ParameterValue>
> > > <ParameterValue>
> > > <Name>Subject</Name>
> > > <Value>@ReportName was executed at @ExecutionTime</Value>
> > > </ParameterValue>
> > > <ParameterValue>
> > > <Name>Priority</Name>
> > > <Value>NORMAL</Value>
> > > </ParameterValue>
> > > </ParameterValues>' )
>
> > > -- pull the 'value' data when it's sibling <Name> value = "TO"
> > > SELECT
> > > --c.d.value('local-name', 'VARCHAR(30)'),
> > > e.a.value('.', 'VARCHAR(30)') x,
> > > -- OR
> > > e.a.value('(text())[1]', 'VARCHAR(30)') y
>
> > > FROM @subscriptions
> > > CROSS APPLY extensionSettings.nodes('//ParameterValue[Name = "TO" or 
> > > Name =
> > > "BCC" or Name = "ReplyTo"]/Value') e(a)
>
> > > HTH
> > > wBob
>
> > > "kent.eil...@res-direct.com" wrote:
>
> > > > i'm trying to pull out email addresses info from the SSRS 
> > > > subscription
> > > > table. The xml looks like this:
>
> > > > <ParameterValues>
> > > > <ParameterValue>
> > > > <Name>TO</Name>
> > > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > > </ParameterValue>
> > > > <ParameterValue>
> > > > <Name>BCC</Name>
> > > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > > </ParameterValue>
> > > > <ParameterValue>
> > > > <Name>ReplyTo</Name>
> > > > <Value>p...@myemail.com;p...@myemail.com</Value>
> > > > </ParameterValue>
> > > > <ParameterValue>
> > > > <Name>IncludeReport</Name>
> > > > <Value>True</Value></ParameterValue>
> > > > <ParameterValue>
> > > > <Name>RenderFormat</Name>
> > > > <Value>EXCEL</Value>
> > > > </ParameterValue>
> > > > <ParameterValue>
> > > > <Name>Subject</Name>
> > > > <Value>@ReportName was executed at @ExecutionTime</Value>
> > > > </ParameterValue>
> > > > <ParameterValue>
> > > > <Name>Priority</Name>
> > > > <Value>NORMAL</Value>
> > > > </ParameterValue></ParameterValues>
> > > > </ParameterValues>
>
> > > > I have not been able to figure out the correct syntax with xpath or
> > > > xquery...my logic is as follows:
>
> > > > pull the 'value' data when it's sibling <Name> value = "TO"
>
> > > > I've done the following:
>
> > > > SELECT SubscriptionID, extensionSettings,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[1]',
> > > > 'varchar(max)') AS col1,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[2]',
> > > > 'varchar(max)') AS col2,
> > > > CAST(extensionSettings AS XML).value('(//ParameterValue/Value)[3]',
> > > > 'varchar(max)') AS col3
> > > > from Subscriptions
>
> > > > which gets me the To, CC, & BCC data into output columns 1,2,3. but 
> > > > I
> > > > cannot assume the 2nd value is always of 'CC' type...
>
> > > > I've also tried:
> > > > SELECT CAST(extensionSettings AS XML).value('(//ParameterValue[Name
> > > > ="TO"]/Value)','varchar(max)') AS col1
> > > > from Subscriptions
>
> > > > but this generates an error about " 'value()' requires a
> > > > singleton...."
>
> > > > anyone provide an example of how to accomplish this?
>
> > > > thanks.
>
> wow - it works too!
>
> very nice...i'll have to look at this carefully..
>
> Thanks !

btw..do you know where any documentation on the
extensionSettings.nodes function is?

thanks.
date: Wed, 9 Jul 2008 22:16:49 -0400   author:   Michael Coles michaelcoREPLACE_THIS_WITH_AT_SIGNoptonline.net

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us