programing

Oracle에서 VARCHAR의 XMLTYPE을 변환하는 방법은 무엇입니까?

closeapi 2023. 6. 30. 22:23
반응형

Oracle에서 VARCHAR의 XMLTYPE을 변환하는 방법은 무엇입니까?

ORACLE의 테이블(TRANSACTION)에 XMLTYPE(XML_IN 및 XML_OUT)이라는 두 개의 열이 있습니다.VARCHAR 등으로 변환하는 방법을 모르기 때문에 절차가 작동하지 않습니다(오류인 것 같습니다).내 절차는 다음과 같습니다.

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, T.XML_OUT
    FROM TRANSACTION T
    WHERE T.ID_TRANSACTION = P_ID_TRANSACTION;

END SEARCH_XML;

VisualStudio 2008에서 이 절차를 호출하면 "지원되지 않는 오라클 데이터 유형 USERDEFINED가 발생했습니다."라는 오류 메시지가 표시됩니다.이게 어떻게 작동하는지 아십니까?

XMLType 에는 두 가지 방법이 있습니다.getStringVal()그리고.getClobVal()XML 구조를 문자열 표현으로 변환합니다.VARCHAR2그리고.CLOB각각)XML 출력이 항상 4,000자(바이트) 미만일 것이라는 사실을 알지 못하는 한, 다음을 사용할 수 있습니다.getClobVal()다음과 같이:

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;

언급URL : https://stackoverflow.com/questions/35039363/how-to-convert-xmltype-in-varchar-in-oracle

반응형