Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Se a opção BINARY BASE64 for especificada na consulta, os dados binários serão retornados no formato de codificação base64.
Se a opção BINARY BASE64 não estiver especificada na consulta, então, por padrão, o modo AUTO suporta a codificação de URL de dados binários. Uma referência a uma URL relativa à raiz virtual do banco de dados é retornada. Essa referência é ao banco de dados onde a consulta foi executada. A referência retornada pode ser usada para acessar os dados binários reais em operações subsequentes. Esse acesso é obtido usando a consulta ISAPI dbobject SQLXML. A consulta deve fornecer informações suficientes para identificar a imagem. Essas informações podem incluir as colunas da chave primária.
Apelido de coluna
Não use um alias para uma coluna binária ao consultar uma vista e ao usar o modo PARA XML AUTO. Se você usar um alias, o alias será retornado na codificação de URL dos dados binários. Em operações subsequentes, o pseudônimo não faz sentido. O alias sem significado e a codificação de URL não podem ser usados para recuperar a imagem.
Converter para um BLOB
Em uma consulta SELECT, a conversão de qualquer coluna para um objeto binário grande (BLOB) torna a coluna uma entidade temporária. Sendo temporário, o BLOB perde o nome da tabela associada e o nome da coluna. Essa conversão faz com que as consultas de modo AUTO gerem um erro, porque o sistema não sabe onde colocar esse valor na hierarquia XML.
Por exemplo, considere a tabela a seguir com sua única linha.
CREATE TABLE MyTable (Col1 int PRIMARY KEY, Col2 binary)
INSERT INTO MyTable VALUES (1, 0x7);
A consulta a seguir produz um erro, que é causado pela conversão para um objeto binário grande (BLOB):
SELECT Col1,
CAST(Col2 as image) as Col2
FROM MyTable
FOR XML AUTO;
A solução é adicionar a opção BINARY BASE64 à cláusula FOR XML. Se você remover a transmissão, a consulta produzirá bons resultados.
SELECT Col1,
CAST(Col2 as image) as Col2
FROM MyTable
FOR XML AUTO, BINARY BASE64;
Espere o seguinte bom resultado:
<MyTable Col1="1" Col2="Bw==" />
Ver também
Usar o modo AUTO com FOR XML