OCI-Lob sınıfını tanımıştık. bu sınıfın insert ve update sorguları için kullanılan metodu olan OCI-Lob::save() metodunu inceliyor olacağız. Update sorgularımız için şartımıza uyan bir satır yoksa php OCI_INVALID_HANDLE gibi bir hata fırlatıyor. update işlemlerini bir sonraki yazıda işleyeceğimiz için şimdilik sadece bahsedip geçiyoruz.
OCI-Lob
bool save ( string $data [, int $offset ] )
save metodu LOB alanlara veri yazmak için kullanılır. OCI lob objelerinin indikasyon özelliği olduğundan opsiyonel olarak offset değeri de verebiliyoruz . yani istersek veriyi lobun istediğimiz alanına yazabiliyoruz.
işte örnek insert işlemi.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | $conn=oci_connect(); // bağlantı ayarlarınız $sql = "INSERT INTO loblar ( id, lobalan ) VALUES ( loblar_seq.NEXTVAL, -- Boş bir CLOB oluşturuyoruz EMPTY_CLOB() ) RETURNING -- Lob locator dönderiyoruz lobalan INTO :mylob_loc"; $stmt = oci_parse($conn, $sql); // Boş bir OCI-Lob objesi oluşturuyoruz $myLOB = oci_new_descriptor($conn, OCI_D_LOB); // LOB loactor a bağlıyoruz. oci_bind_by_name($stmt, ":mylob_loc", $myLOB, -1, OCI_B_CLOB); // Sorguyu çalıştıyoruz (Default Transaction modunda) oci_execute($stmt, OCI_DEFAULT) or die ("Unable to execute query\n"); // Lob alana şimdi istediğimizi yazdırıyoruz if ( !$myLOB->save('Tarih : '.date('H:i:s',time())) ) { // Hata olmuşsa geri sarıyoruz oci_rollback($conn); } else { // başarıyla yazabildiysek commit ediyoruz. oci_commit($conn); } // kaynakları boşaltıp veritabanı bağlantısını kesiyoruz. oci_free_statement($stmt); $myLOB->free(); oci_close($conn) |
Blob Compression konusunda bilgi almak için de şu konuyu okuyabilirsiniz












