Saya mencoba untuk melihat dari konsol SQL apa yang ada di dalam BLOB Oracle.
Saya tahu ini berisi teks yang agak besar dan saya hanya ingin melihat teksnya, tetapi kueri berikut hanya menunjukkan bahwa ada BLOB di bidang itu:
select BLOB_FIELD from TABLE_WITH_BLOB where ID = '<row id>';
hasil yang saya dapatkan tidak seperti yang saya harapkan:
BLOB_FIELD ----------------------- oracle.sql.BLOB@1c4ada9
Jadi mantra sihir apa yang dapat saya lakukan untuk mengubah BLOB menjadi representasi tekstualnya?
NB: Saya hanya mencoba untuk melihat konten BLOB dari konsol SQL (Alat Data Eclipse), bukan menggunakannya dalam kode.
Anda dapat menggunakan SQL di bawah ini untuk membaca BLOB Fields dari tabel.
sumber
Pengembang SQL menyediakan fungsionalitas ini juga:
Klik dua kali sel kisi hasil, dan klik edit:
Kemudian di bagian kanan atas pop-up, "View As Text" (Anda bahkan dapat melihat gambar ..)
Dan itu dia!
sumber
Jika Anda ingin mencari di dalam teks, daripada melihatnya, ini berfungsi:
sumber
Jawaban Barn berfungsi untuk saya dengan modifikasi karena kolom saya tidak dikompresi. Solusi cepat dan kotor:
sumber
Saya berjuang dengan ini untuk sementara waktu dan menerapkan solusi PL / SQL, tetapi kemudian menyadari bahwa di Toad Anda cukup mengklik dua kali pada sel kisi hasil, dan itu menampilkan editor dengan konten dalam teks. (Saya menggunakan Toad v11)
sumber
Jika teks Anda dikompresi di dalam blob menggunakan algoritme DEFLATE dan ukurannya cukup besar, Anda dapat menggunakan fungsi ini untuk membacanya
Kemudian jalankan pilih untuk mendapatkan teks
Semoga ini bisa membantu seseorang.
sumber
Gunakan SQL ini untuk mendapatkan 2000 karakter pertama BLOB.
Catatan: Ini karena, Oracle tidak akan dapat menangani konversi BLOB yang lebih dari 2000 panjang.
sumber
Anda dapat mencoba ini:
Namun, itu akan dibatasi hingga 4000 byte
sumber
Bekerja untuk saya,
sumber
Gunakan
TO_CHAR
fungsi.Bertobat
NCHAR
,NVARCHAR2
,CLOB
, atauNCLOB
data ke set karakter database. Nilai yang dikembalikan selaluVARCHAR2
.sumber