XML을 생성하려고합니다. 현재 코드는 한 번에 하나의 XML 태그를 VARCHAR2
변수에 추가하여이를 수행합니다.VARCHAR2 대신 CLOB 사용
xmlString VARCHAR2(32767);
....
....
xmlString := xmlString || '<' || elementName || '>' || elementValue || '</' || elementName || '>';
그러나 때문에 VARCHAR2
에 32767 개 문자의 크기 제한에, 우리는 매우 긴 XML에 대한 다음과 같은 오류가 발생합니다.
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
우리가 가지고있는 솔루션은 CLOB
를 선언하고 CLOB
에 VARCHAR2
변수를 플러싱 유지하는 프로 시저를 작성하는 것입니다.
v_result clob;
.....
.....
IF xmlString IS NOT NULL THEN
dbms_lob.writeappend(v_result, LENGTH(xmlString), xmlString);
xmlString := NULL;
END IF;
그러나 이렇게하려면 많은 새로운 코드 줄을 새로운 함수 호출로 교체해야합니다. 이 작업을 수행하는 더 좋은 방법이 있습니까?
PLSQL의 연산자 오버로딩과 비슷한 것이 있습니까? 변수 xmlString
의 데이터 유형을 CLOB로 변경하고 의 작업을 수행 할 ||
연산자를 만들 수 있습니까?