2017-06-23 19 views
0

我正在使用ORACLE数据库,我需要获取大量记录集(几千行)的BLOB(或另一个LOB格式),我从查询中检索这些记录集。 我需要将输出格式填充为LOB,然后将其作为输入提供给DBMS_CRYPTO.Hash函数,从而生成我需要的散列键。如何转换BLOB中的SQL记录集?

是否可以直接使用解析为JSON类型的查询数据填充LOB?或者您是否建议我使用其他格式以有效的方式填充(B)LOB格式?

感谢

回答

0

最直接的答案是,你可以序列化到你的巨大记录到XML

SELECT DBMS_XMLGEN.getxmltype ('select * from EMPLOYEE') FROM DUAL 

输出:

SELECT DBMS_XMLGEN.getxmltype( 'SELECT * FROM EMPLOYEE')FROM DUAL

输出:

<ROWSET> 
    <ROW> 
    <EMP_ID>1</EMP_ID> 
    <EMP_NAME>Employee 1</EMP_NAME> 
    <EMP_DEPT_ID>1</EMP_DEPT_ID> 
    <EMP_LOC>1</EMP_LOC> 
    <EMP_SAL>2000</EMP_SAL> 
    </ROW> 
    <ROW> 
    <EMP_ID>2</EMP_ID> 
    <EMP_NAME>Employee 2</EMP_NAME> 
    <EMP_DEPT_ID>2</EMP_DEPT_ID> 
    <EMP_LOC>2</EMP_LOC> 
    <EMP_SAL>1000</EMP_SAL> 
    </ROW> 
</ROWSET> 

后,您可以使用TO_CLOB or_to_blob功能

SELECT TO_CLOB (DBMS_XMLGEN.getxmltype ('select * from EMPLOYEE')) FROM DUAL 

输出:(HUGECLOB)