Tem
27
2020

BLOB objesinin CLOB objesine dönüştürülmesi

Merhaba,,

ihtiyaçlarımız dahilinde * BLOB (binary large object) formatında veri yapısına sahip objeyi * CLOB (character large object) formatına dönüştürmemizi sağlayan workarround fonksiyon aşağıdaki gibidir.

 
 
FUNCTION b2c (blob_in IN BLOB)
      RETURN CLOB
   AS
      v_clob      CLOB;
      v_varchar   VARCHAR2 (32767);                                   --> 32767
      v_start     PLS_INTEGER := 1;
      v_buffer    PLS_INTEGER := 10000;                               --> 32767
   BEGIN
      DBMS_LOB.createtemporary (v_clob, TRUE);
 
 
      IF v_buffer > DBMS_LOB.getlength (blob_in)
      THEN
         v_buffer := DBMS_LOB.getlength (blob_in);
      END IF;
 
      FOR i IN 1 .. CEIL (DBMS_LOB.getlength (blob_in) / v_buffer)
      LOOP
         v_varchar :=
            UTL_RAW.cast_to_varchar2 (
               DBMS_LOB.SUBSTR (blob_in, v_buffer, v_start));
         DBMS_LOB.writeappend (v_clob, LENGTH (v_varchar), v_varchar);
         v_start := v_start + v_buffer;
      END LOOP;
 
      RETURN v_clob;
   END b2c;

* BLOB : 4GB ‘ a kadar binary formatında veri tutan veri yapısı.
* CLOB : 4GB ‘ a kadar karakter formatında veri tutan veri yapısı.

Mustafa Korkmaz

Oracle Applications Developer at Partnera
2005 yılında Dokuz Eylül Üniversitesi Endüstri Mühendisliğinden Mezun
Oldu, 2011 Yılında Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliğinde
Yüksek Lisansını Tamamlandı,2012 Yılında Doğuş Üniversitesinde Bilgisayar
Mühendisliği Doktora Eğitimine Başladı.10 yılı aşkın bir zamandır Oracle
Ürünleri Uygulama Yazılım Uzmanı Olarak profesyonel kariyerine devam
etmektedir. İlgi alanları Middleware, CI/CD,
Oracle Database , PL/SQL , Java , Makine Öğrenmesi ve Veri Madenciliği alanlarındadır.
2 versiyon Oracle Database ' (10g, 11g) inde OCA(Oracle Certificate Associate) ve
PL/SQL Certificated Professional ünvanları bulunmaktadır.
Mail: mustafakorkmz@gmail.com
Mustafa Korkmaz


Yorum yapın

*