zoukankan      html  css  js  c++  java
  • Oracle Blob转Clob和Varchar2

    create or replace FUNCTION blob_to_clob (blob_in IN BLOB) 
    RETURN CLOB 
    IS 
    v_clob CLOB; 
    v_varchar VARCHAR2(4000); 
    v_start PLS_INTEGER := 1; 
    v_buffer PLS_INTEGER := 4000; 
    g_nls_db_char varchar2(60); 
    BEGIN 
     select userenv('LANGUAGE') into g_nls_db_char from dual; 
     
     if DBMS_LOB.GETLENGTH(blob_in) is null then
            return empty_clob();  
     end if;
     
     DBMS_OUTPUT.put_line('TEST:' || CEIL(DBMS_LOB.GETLENGTH(blob_in)));
     
     DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); 
     
     FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) 
     LOOP 

     v_varchar := UTL_RAW.CAST_TO_VARCHAR2(utl_raw.convert(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start),'SIMPLIFIED CHINESE_CHINA.ZHS16GBK', 'AMERICAN_THE NETHERLANDS.UTF8'));

     DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar); 

     v_start := v_start + v_buffer; 
     END LOOP; 
     
     --DBMS_OUTPUT.put_line(v_varchar);
     
     RETURN v_clob; 
     
    end blob_to_clob; 

    create or replace FUNCTION blob_to_varchar (blob_in IN BLOB) 
    RETURN VARCHAR2 
    IS 

    v_varchar VARCHAR2(4000); 
    v_start PLS_INTEGER := 1; 
    v_buffer PLS_INTEGER := 4000; 
     
    BEGIN 
     --select userenv('LANGUAGE') into g_nls_db_char from dual; 
     
     if DBMS_LOB.GETLENGTH(blob_in) is null then
            return empty_clob();  
     end if;
     
     DBMS_OUTPUT.put_line('TEST:' || CEIL(DBMS_LOB.GETLENGTH(blob_in)));
     
     --DBMS_LOB.CREATETEMPORARY(v_clob, TRUE); 
     
     FOR i IN 1..CEIL(DBMS_LOB.GETLENGTH(blob_in) / v_buffer) 
     LOOP 

     v_varchar := UTL_RAW.CAST_TO_VARCHAR2(utl_raw.convert(DBMS_LOB.SUBSTR(blob_in, v_buffer, v_start),'SIMPLIFIED CHINESE_CHINA.ZHS16GBK', 'AMERICAN_THE NETHERLANDS.UTF8'));

     --DBMS_LOB.WRITEAPPEND(v_clob, LENGTH(v_varchar), v_varchar); 

     v_start := v_start + v_buffer; 
     END LOOP; 
     
     --DBMS_OUTPUT.put_line(v_varchar);
     
     RETURN v_varchar; 
     
    end blob_to_varchar;

  • 相关阅读:
    将excel文件的内容导入sql server数据库的方法
    DataGridView 中的 CheckBox
    TextBox的文本换行问题
    寻找TreeView中的项(c#)
    关于C#的几个问题
    远程通信
    人脸搜索项目开源了:人脸识别(M:N)Java版
    人脸识别中的重要环节对齐之3D变换Java版(文末附开源地址)
    揭秘人脸对齐之3D变换Java版(文末附开源地址)
    阿里云视觉智能开放平台的人脸1:N搜索的开源替代Java版(文末附开源地址)
  • 原文地址:https://www.cnblogs.com/vicky24k/p/4398896.html
Copyright © 2011-2022 走看看