Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment convertir XMLTYPE en VARCHAR dans ORACLE ?

XMLType a deux méthodes :getStringVal() et getClobVal() qui convertira la structure XML en leurs représentations sous forme de chaîne (sous forme de VARCHAR2 et CLOB respectivement). Sauf si vous savez que votre sortie XML sera toujours inférieure à 4000 caractères (octets), vous voudrez probablement utiliser getClobVal() comme ceci :

PROCEDURE SEARCH_XML
(
    P_ID_TRANSACTION IN TRANSACTION.ID_TRANSACTION%TYPE,

    P_CURSOR OUT T_CURSOR
)
IS
BEGIN
  OPEN P_CURSOR FOR
    SELECT T.XML_IN.getClobVal() AS XML_IN,
           T.XML_OUT.getClobVal() AS XML_OUT
    FROM TRANSACTION T
    WHERE T.ID_TRANSACTION = P_ID_TRANSACTION;
END SEARCH_XML;