Alhamdulillah setelah "bergalau ria" semalaman gara-gara BLOB, akhirnya bisa juga memasukkan data ke dalam tabel yang terdapat tipe data BLOB... Terimakasih buat miss_odong2 yang sudah membuat penulis terpaksa belajar untuk meng-insert data blob. Ini gara-gara penulis sudah bilang YA untuk membantunya mencari cara menginsert data blob...(salah saya bilang "YA", lain kali harus lebih hati2...:D)
Data yang akan dimasukkan dapat bertipe apapun misalkan data gambar, data video, maupun data2 lainnya... untuk memasukkan datanya akan dibuat procedure yang akan menangani insert data dari directory di komputer kedalam kolom database. Gimana ya caranya???
yuk dibaca dengan tenang lebih enak klo ada camilan asal bukan permen(ntar kayak miss_odong2... diminta bawa makanan ditawarinnya permen...:D) dan jangan lupa langsung praktekan biar lengket diingatan...:D
Yuk dimulai,,,
1. Kita bikin dulu table yang memiliki type data BLOB,
create table simpan_gambar( nama varchar2(30), --untuk nama file gambar BLOB);
2. Kita atur directory tempat meletakkan data yang akan dimasukkan.
Buat directory di oracle yang di link ke directory yang ada di OS atau PC(gampangnya klo pake OS windos, direktori yang ada pada windows explorer...) misal pada contoh ini menggunakan direktori "d:\cobablob". syntaxnya :
create or replace directory tempblob as 'd:\cobablob';
ket : - tempblob merupakan direktori yang dibuat di oracle...(bingung??? udw diterima saja...:D)
Untuk membuat direktori ini harus menggunakan user yang memiliki privilage dba_directories atau all_directories(klo bingung, gunakan saja user system...:D). Direktori ini biasanya dibuat untuk external tables(cari sendiri ya definisinya, tanya mbah google...).
Setelah itu, kalau kita menggunakan user lain yang mengurusi tabel yang mau dimasukkan datanya kita atur dulu privilagenya, syntaxnya :
grant read, write on directory tempblob to coba;
*misal dengan user coba
3. Kita buat procedure untuk menangani insert data
CREATE OR REPLACE PROCEDURE File2tabelBlob( namadir varchar2, namafile varchar2) IS dFile BFILE; isi BLOB; ukuran BINARY_INTEGER; Begin dFile:=bfilename(namadir,namafile); insert into simpan_gambar(nama, gambar) values(namafile,EMPTY_BLOB()) RETURNING gambar into isi; dbms_lob.fileopen(dFile,dbms_lob.file_readonly); ukuran:=dbms_lob.getlength(dFile); dbms_lob.loadfromfile(isi,dFile,ukuran); Update simpan_gambar set gambar=isi where nama=namafile; dbms_lob.fileclose(dFile); end File2tabelBlob; /
4. Kita eksekusi procedure yang telah dibuat sebelumnya...
exec File2tabelBlob('TEMPBLOB','miss_odong2.jpg');
jika terdapat tulisan "PL/SQL procedure successfully completed." maka prosedure berhasil di eksekusi dan data gambar miss_odong2.jpg sudah masuk ke table.
Untuk melihatnya jangan gunakan sintak Select biasa pada sqlplus tidak akan bisa jika yang tipe BLOB juga mo dikeluarkan, silahkan dicoba kalau tidak percaya...:D. Untuk melihat data masuk atau tidak coba buka pakai Navicat atau yang lainnya. Walaupun isi data BLOB tidak tampil minimal kita bisa tahu bahwa datanya sudah masuk. seperti dibawah ini :
Demikian sedikit hal yang dapat saya share semoga bisa bermanfaat...
duh, ikhlas ga ni kak?? kok ada "terpaksa belajar", jadi ga enak
BalasHapusyah yah...
apaan miss_odong2??
catet ya kak, nama di akte tu farida nuzulia, main ganti aja
hehe, tapi makasih ya kak ilmunya, sering" aja, heeeeee..
G mungkin klo bilang "pasti ikhlas", yang bisa saya bilang "saya akan berusaha ikhlas"
BalasHapusbagus kan miss_odong2,lebih terkenal,,,:D
gara2 ini saya jadi penasaran make BLOB, awas ya...
yeee dasar kak alip... ada miss_cilacap, ada miss_odong2, ga konsisten ni... dibilangin jangan asal ganti nama orang juga, heeeee...
BalasHapuskatanya udah bisa cara nampilin gambarnya, di-posting juga lah kak...
makasih banyak ya kaaaaakk
ini gara2 blogspot error nie... jadi ada yang lupa tidak diedit... sekarang udah di edit kok lihat saja tuh, konsisten...:D
BalasHapusiya ntar diusahakan diposting, untuk yang video bantuin buat ya...
waaw kilat ya balesnya
BalasHapusyaaah, jangan pake nama begitu kenapa kak
tapi kalo yang video itu, bukan dari database,
gimana kalo kakak yang posting juga, haha......
yang video bukan dari database??? gmn maksudnya?
BalasHapusyaa maksudnya cuma nampilin video dari direktori tertentu aja yang udah ditentuin, haha,
BalasHapusni tapi ada software yang bisa nampilin video streaming dari web cam, baru mau dicobain si, he..
oya kak, tau ga cara nyambungin aplikasi ke database yang servernya beda (aplikasi dan database beda komputer)
bisa pake IP... yang pas OCIconnect tambahkan IP
BalasHapusg usah dibuat susah mendingan videonya simpan di DB lalu tampilin... atau yang tadi akses saja dari directory...
BalasHapustapi klo mo lebih bagus ya terserah saja...
terimakasih ilmunya :)
BalasHapus@Danta : Sip,
BalasHapushmmm... udw lama g buka blog, ternyata ini to yg dibaca...
untuk pengeksekusian, file yang ingin kita inputkan kita letakan dimana? makasih.. kalo yang mas inputkan, miss odong2, mis odong2.jpg itu mas simpen dimana sebelum di inputkan, apakah ada folder tertentu?
BalasHapusMaaf baru sempat bales...
BalasHapusnah untuk filenya letakan saya letakan di d:\cobablob
Coba baca bagian 2
info dong, sumber penulis apa ya? untuk bahan belajar saya.trimakasih
BalasHapus