Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Retorna o valor de $arg representado como uma cadeia de caracteres.
Sintaxe
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Argumentos
$arg
Um nó ou um valor atômico.
Comentários
Se $arg for a sequência vazia, a cadeia de caracteres de comprimento zero será retornada.
Se $arg for um nó, a função retornará o valor da cadeia de caracteres do nó obtido usando o acessador de valor de cadeia de caracteres. Isso está definido nas especificações do W3C XQuery 1.0 e do XPath 2.0 Data Model.
Se $arg for um valor atômico, a função retornará a mesma cadeia de caracteres retornada pela conversão de expressão como
xs:string, $arg, exceto quando observado o contrário.Se o tipo de $arg for
xs:anyURI, o URI será convertido em uma cadeia de caracteres sem escapar de caracteres especiais.Nessa implementação,
fn:string()sem um argumento só pode ser usado no contexto de um predicado dependente de contexto. Especificamente, ele só pode ser usado dentro de colchetes ([ ]).
Exemplos
Este artigo fornece exemplos XQuery em instâncias XML armazenadas em várias colunas de tipo xml no banco de dados AdventureWorks.
R. Usar a função de cadeia de caracteres
A consulta a seguir recupera o <Features> nó do elemento filho do <ProductDescription> elemento.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
/PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Este é o resultado parcial:
<PD:Features xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
These are the product highlights.
<p1:Warranty xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
<p1:WarrantyPeriod>3 years</p1:WarrantyPeriod>
<p1:Description>parts and labor</p1:Description>
</p1:Warranty>
...
</PD:Features>
Se você especificar a string() função, receberá o valor da cadeia de caracteres do nó especificado.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Aqui está o resultado parcial.
These are the product highlights.
3 yearsparts and labor...
B. Usar a função de cadeia de caracteres em vários nós
No exemplo a seguir, uma instância XML é atribuída a uma variável do tipo xml. As consultas são especificadas para ilustrar o resultado da aplicação string() a vários nós.
DECLARE @x AS XML;
SET @x = '<?xml version="1.0" encoding="UTF-8" ?>
<!-- This is a comment -->
<root>
<a>10</a>
just text
<b attr="x">20</b>
</root>
';
A consulta a seguir recupera o valor da cadeia de caracteres do nó do documento. Esse valor é formado pela concatenação do valor da cadeia de caracteres de todos os seus nós de texto descendentes.
SELECT @x.query('string(/)');
Eis o resultado:
This is a comment 10
just text
20
A consulta a seguir tenta recuperar o valor da cadeia de caracteres de um nó de instrução de processamento. O resultado é uma sequência vazia, pois não contém um nó de texto.
SELECT @x.query('string(/processing-instruction()[1])');
A consulta a seguir recupera o valor da cadeia de caracteres do nó de comentário e retorna o nó de texto.
SELECT @x.query('string(/comment()[1])');
Eis o resultado:
This is a comment