0

我正在使用 ORACLE 数据库,我需要获取从查询中检索到的巨大记录集(几千行)的 BLOB(或另一种 LOB 格式)。我需要将输出格式填充为 LOB,然后提供它作为 DBMS_CRYPTO.Hash 函数的输入,该函数生成我需要的哈希键。

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

谢谢

4

1 回答 1

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 或_to_blob 功能

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

输出:(巨大的)

于 2017-07-04T15:45:10.317 回答