Oracle
 sql >> Database >  >> RDS >> Oracle

Come convertire XMLTYPE in VARCHAR in ORACLE?

XMLType ha due metodi:getStringVal() e getClobVal() che convertirà la struttura XML nelle loro rappresentazioni di stringa (come VARCHAR2 e CLOB rispettivamente). A meno che tu non sappia che il tuo output XML sarà sempre inferiore a 4000 caratteri (byte), probabilmente vorrai usare getClobVal() così:

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;