Bagikan melalui


Gunakan opsi BINARY BASE64

Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance

Jika opsi BINARY BASE64 ditentukan dalam kueri, data biner dikembalikan dalam format pengodean base64.

Jika opsi BINARY BASE64 tidak ditentukan dalam kueri, maka secara default, mode OTOMATIS mendukung pengodean URL data biner. Referensi ke URL relatif ke akar virtual database dikembalikan. Referensi ini adalah ke database tempat kueri dijalankan. Referensi yang dikembalikan dapat digunakan untuk mengakses data biner aktual dalam operasi berikutnya. Akses ini dicapai dengan menggunakan kueri SQLXML ISAPI dbobject . Kueri harus memberikan informasi yang cukup untuk mengidentifikasi gambar. Informasi tersebut mungkin menyertakan kolom kunci primer.

Alias kolom

Jangan gunakan alias untuk kolom biner saat Anda mengkueri tampilan dan menggunakan mode FOR XML AUTO. Jika Anda menggunakan alias, alias dikembalikan dalam pengodean URL data biner. Dalam operasi berikutnya, alias tidak ada artinya. Alias yang tidak berarti dan pengodean URL tidak dapat digunakan untuk mengambil gambar.

Transmisikan ke BLOB

Dalam kueri SELECT, transmisi kolom apa pun ke objek besar biner (BLOB) menjadikan kolom sebagai entitas sementara. Bersifat sementara, BLOB kehilangan nama tabel dan nama kolom terkait. Pemeran ini menyebabkan kueri mode OTOMATIS menghasilkan kesalahan, karena sistem tidak tahu di mana menempatkan nilai ini dalam hierarki XML.

Misalnya, pertimbangkan tabel berikut dengan satu barisnya.

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

Kueri berikut menghasilkan kesalahan, yang disebabkan oleh transmisi ke objek besar biner (BLOB):

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

Solusinya adalah menambahkan opsi BINARY BASE64 ke klausa FOR XML. Jika Anda menghapus transmisi, kueri akan menghasilkan hasil yang baik.

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

Harapkan hasil yang baik berikut:

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

Lihat juga

Menggunakan Mode OTOMATIS dengan FOR XML