sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo convertir XMLTYPE en VARCHAR en ORACLE?

XMLType tiene dos métodos:getStringVal() y getClobVal() que convertirá la estructura XML a sus representaciones de cadena (como un VARCHAR2 y CLOB respectivamente). A menos que sepa que su salida XML siempre tendrá menos de 4000 caracteres (bytes), entonces probablemente querrá usar getClobVal() así:

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;