Dela via


Använd alternativet BINARY BASE64

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Om alternativet BINARY BASE64 anges i frågan returneras binära data i base64-kodningsformat.

Om alternativet BINARY BASE64 inte anges i frågan stöder autoläge som standard URL-kodning av binära data. En referens till en relativ URL till databasens virtuella rot returneras. Den här referensen är till databasen där frågan kördes. Den returnerade referensen kan användas för att komma åt faktiska binära data i efterföljande åtgärder. Den här åtkomsten uppnås med hjälp av FRÅGAN SQLXML ISAPI dbobject. Frågan måste innehålla tillräckligt med information för att identifiera avbildningen. Sådan information kan innehålla kolumnerna i primärnyckeln.

Kolumnalias

Använd inte ett alias för en binär kolumn när du frågar en vy och använder FOR XML AUTO-läget. Om du använder ett alias returneras aliaset i URL-kodningen för binära data. I efterföljande åtgärder är aliaset meningslöst. Det meningslösa aliaset och URL-kodningen kan inte användas för att hämta bilden.

Konvertera till en BLOB

I en SELECT-fråga gör gjutning av valfri kolumn till ett binärt stort objekt (BLOB) kolumnen till en tillfällig entitet. Eftersom BLOB är tillfällig förlorar den sitt associerade tabellnamn och kolumnnamn. Den här typen gör att frågor i auto-läge genererar ett fel, eftersom systemet inte vet var den här värdet ska placeras i XML-hierarkin.

Tänk dig till exempel följande tabell med en rad.

CREATE TABLE MyTable (Col1 int PRIMARY KEY, Col2 binary)
INSERT INTO MyTable VALUES (1, 0x7);

Följande fråga genererar ett fel som orsakas av gjutningen till ett binärt stort objekt (BLOB):

SELECT Col1,
CAST(Col2 as image) as Col2
FROM MyTable
FOR XML AUTO;

Lösningen är att lägga till alternativet BINARY BASE64 i FOR XML-satsen. Om du tar bort castingen ger sökfrågan bra resultat.

SELECT Col1,
CAST(Col2 as image) as Col2
FROM MyTable
FOR XML AUTO, BINARY BASE64;

Förvänta dig följande bra resultat:

<MyTable Col1="1" Col2="Bw==" />

Se även

Använda autoläge med FOR XML-