пятница, 23 октября 2015 г.

Update BLOB

set define off
DECLARE
   vb1 CLOB :=
'long text';
   vb2 CLOB :=
                'long text';
   vb3 CLOB :=
                'long text';
   vb CLOB := vb1||vb2||vb3;
   vb_upd BLOB;
FUNCTION convert_clob_to_blob (pclob CLOB) RETURN BLOB
  IS
    lblob              BLOB;
    ldest_offset    INTEGER := 1;
    lsource_offset INTEGER := 1;
    llang_context  INTEGER := dbms_lob.default_lang_ctx;
    lwarning        INTEGER := dbms_lob.warn_inconvertible_char;
  BEGIN
    dbms_lob.createtemporary (lblob, TRUE);

    dbms_lob.converttoblob (dest_lob    => lblob,
                                              src_clob    => pclob,
                                              amount      => dbms_lob.lobmaxsize,
                                              dest_offset => ldest_offset,
                                              src_offset  => lsource_offset,
                                              blob_csid   => dbms_lob.default_csid,
                                              lang_context=> llang_context,
                                              warning     => lwarning);
    RETURN lblob;
END convert_clob_to_blob;
BEGIN
   vb_upd := convert_clob_to_blob(vb);
   UPDATE tab SET BLOB_COL = vb_upd
   WHERE ...;
   COMMIT;
END;



/  

Комментариев нет:

Отправить комментарий

Update BLOB

set define off DECLARE    vb1 CLOB := 'long text';    vb2 CLOB :=                 'long text';    vb3 CLOB :=              ...