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;

  • 相关阅读:
    BZOJ 2789: [Poi2012]Letters 树状数组 + 逆序对
    luogu 5468 [NOI2019]回家路线 最短路/暴力
    BZOJ 2427: [HAOI2010]软件安装 tarjan + 树形背包
    练手爬虫用urllib模块获取
    django安装以及配置
    web框架
    模拟百度进行图片搜索,有问题可以留言
    深入requests库params|data|json参数
    深入理解http1.x、http 2和https
    nodejs 实现 磁力链接资源搜索 BT磁力链接爬虫
  • 原文地址:https://www.cnblogs.com/vicky24k/p/4398896.html
Copyright © 2011-2022 走看看