2017-06-23 2 views
0

J'utilise une base de données ORACLE et j'ai besoin d'obtenir le BLOB (ou un autre format LOB) d'un énorme jeu d'enregistrements (quelques milliers de lignes), que je récupère à partir d'une requête. J'ai besoin de remplir le format de sortie en tant que LOB pour le fournir, en tant qu'entrée à la fonction DBMS_CRYPTO.Hash, qui génère la clé de hachage dont j'ai besoin.Comment transformer un ensemble d'enregistrements SQL dans BLOB?

Est-il possible de remplir le LOB directement avec les données de la requête analysées à un type JSON? Ou me conseillez-vous d'utiliser un autre format pour remplir le format (B) LOB d'une manière efficace?

Merci

Répondre

0

La réponse immédiate est que vous pouvez sérialiser à votre énorme XML recordset

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

Sortie:

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

Sortie:

<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> 

Après cela, vous pouvez utiliser la fonction TO_CLOB or_to_blob

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

sortie: (HUGECLOB)