首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CLOB到Zip文件

CLOB到Zip文件
EN

Stack Overflow用户
提问于 2022-01-03 17:39:03
回答 1查看 214关注 0票数 0

在包含XML文件的Oracle DB中有CLOB列。

如何创建包含clob列中所有xml文件的单个zip文件?

表中只有一行,它具有带有xmls的CLOB列。

EN

回答 1

Stack Overflow用户

发布于 2022-01-03 18:15:11

您可以利用APEX_ZIP包查询您的CLOB列,并将它们全部添加到将存储在BLOB中的zip文件中。然后,您可以使用该BLOB做您需要的任何事情。

代码语言:javascript
复制
DECLARE
    l_temp_blob      BLOB;
    l_dest_offset    INTEGER := 1;
    l_src_offset     INTEGER := 1;
    l_lang_context   INTEGER := DBMS_LOB.DEFAULT_LANG_CTX;
    l_warning        INTEGER;
    l_zip            BLOB;
    l_file_counter   PLS_INTEGER := 1;
BEGIN
    FOR i IN (SELECT entity
                FROM TB_INDEXFILES_STORE
               --Add whatever where clause you want here
               WHERE ROWNUM = 1)
    LOOP
        DBMS_LOB.CreateTemporary (lob_loc => l_temp_blob, cache => TRUE);

        DBMS_LOB.ConvertToBlob (dest_lob       => l_temp_blob,
                                src_clob       => i.entity,
                                amount         => LENGTH (i.entity),
                                dest_offset    => l_dest_offset,
                                src_offset     => l_src_offset,
                                blob_csid      => DBMS_LOB.DEFAULT_CSID,
                                lang_context   => l_lang_context,
                                warning        => l_warning);

        apex_zip.add_file (p_zipped_blob   => l_zip,
                           p_file_name     => 'file' || l_file_counter || '.xml',
                           p_content       => l_temp_blob);
                           
        l_file_counter := l_file_counter + 1;
    END LOOP;

    apex_zip.finish (l_zip);
    
    --Do whatever you want with your l_zip blob which is the zip file
END;
/
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70569513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档