我正在使用 ORACLE 数据库,我需要获取从查询中检索到的巨大记录集(几千行)的 BLOB(或另一种 LOB 格式)。我需要将输出格式填充为 LOB,然后提供它作为 DBMS_CRYPTO.Hash 函数的输入,该函数生成我需要的哈希键。
是否可以使用解析为 JSON 类型的查询数据直接填充 LOB?或者您是否建议我使用其他格式以有效的方式填充 (B)LOB 格式?
谢谢
我正在使用 ORACLE 数据库,我需要获取从查询中检索到的巨大记录集(几千行)的 BLOB(或另一种 LOB 格式)。我需要将输出格式填充为 LOB,然后提供它作为 DBMS_CRYPTO.Hash 函数的输入,该函数生成我需要的哈希键。
是否可以使用解析为 JSON 类型的查询数据直接填充 LOB?或者您是否建议我使用其他格式以有效的方式填充 (B)LOB 格式?
谢谢
直接的答案是您可以将庞大的记录集序列化为 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
输出:(巨大的)