如何把ORACLE数据从CLOB类型转化为BLOB类型

如题所述

ORACLEclob转换成Blob类型
  ORACLE 10G R2上
  测试通过。
  CREATE OR REPLACE FUNCTION C2B (b IN CLOB default empty_clob())
  RETURN BLOB
  -- typecasts BLOB to CLOB (binary conversion)
  IS
  res BLOB;
  b_len number := dbms_lob.getlength(b) ;
  dest_offset1 NUMBER := 1;
  src_offset1 NUMBER := 1;
  amount_c INTEGER := DBMS_LOB.lobmaxsize;
  blob_csid NUMBER := DBMS_LOB.default_csid;
  lang_ctx INTEGER := DBMS_LOB.default_lang_ctx;
  warning INTEGER;
  BEGIN
  if b_len 》 0 then
  DBMS_LOB.createtemporary (res, TRUE);
  DBMS_LOB.OPEN (res, DBMS_LOB.lob_readwrite);
  DBMS_LOB.convertToBlob (res,
  b,
  amount_c,
  dest_offset1,
  src_offset1,
  blob_csid,
  lang_ctx,
  warning
  );
  else
  select empty_blob() into res from dual ;
  end if ;
  RETURN res; -- res is OPEN here
  END C2B;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-09-15
先删除后建立。
前提:我的report_data 字段类型是CLOB
alterer table REC_DOWNLOAD_LIST drop column report_data ;
alterer table REC_DOWNLOAD_LIST add report_data BLOB;
相似回答