2016-12-23 1 views
1

CLOB 데이터를 LONG으로 가져 오는 방법이 있습니까? 정말 큰 XML 문자열입니다. 이것은 기존 시스템을위한 것이며 우리는 불행히도 현재 LONG에서 벗어날 수 없습니다. 어떤 도움을 주시면 감사하겠습니다. PL/SQL을 통해이 작업을 수행 할 수 있는지 궁금합니다. 우리가 시도한 작업은 CLOB를 반복하지만 이후 가변 길이 제한에 도달하기 때문입니다. 감사합니다.32K보다 긴 Oracle CLOB의 데이터를 LONG으로 가져 오려면 어떻게해야합니까?

+0

아마도 도움이 될까요? http://psoug.org/reference/long2clob.html – OldProgrammer

+0

아마도 나누고 저장 하시겠습니까? – GurV

답변

-1

PL/SQL의 긴 열에 32K보다 긴 문자열을 삽입 할 수 없습니다. Java, C, VB, C#과 같은 프로그래밍 언어로 할 수 있습니다 (많은 예제가 있습니다). 그러나 long 열은 20 년 전 Oracle에서 더 이상 사용되지 않았습니다 (많은 제한이 있기 때문에 좋은 이유로) 지금까지 CLOB로 변환해야합니다. DB에 이들을 포함 할 이유가 없습니다. 이전의 변명조차도 논점입니다. 특히 전환이 상대적으로 쉽습니다.

https://docs.oracle.com/cd/B28359_01/appdev.111/b28393/adlob_long_lob.htm#i1023103

+0

OP 상태로, CLOB 로의 변환은 옵션이 아닙니다. 우리는 그들이 더 이상 사용되지 않으며 얼마나 제한되어 있는지 알고 있습니다. 이 어딘가에 대답이 있습니까? –

+0

옵션이 아닌 이유는 무엇입니까? 저는 기존 시스템 (코드 300 만 줄, 시스템 25 년)을 작업하고 LONG을 CLOB로 변환했습니다. – paulzip

+0

그들은 그것을 변경하고 응용 프로그램을 부러 뜨 렸기 때문에. 우리는 응용 프로그램의 코드에 액세스 할 수 없습니다. 그래서 그들은 또한 실패한 백업으로 되돌리려 고 노력했습니다. 이제 그들은 그것을 오래도록 바꾸려고합니다. 나는 C#에서 일하므로 변환 할 때만 사용했다. 그냥 내 dba 녀석을 도우려고. –

0

두 개 이상의 열로 XML 문자열을 분할 할 수있는 방법이 있나요? LONG에서 벗어날 수는 없지만 두 번째 열을 만들어 값의 일부 (예 : 헤더 또는 일부 외부 XML 태그)와 세부 정보를 원래 열에 저장할 수 있습니까? 값이 두 열 (이상적이지는 않음)에 저장되지만 문제가 해결 될 수 있음을 의미합니다.

이상적인 해결책은 아니지만 대안을 생각하게 할 수 있습니다.

+1

XML 문서는 10 또는 100 MB 일 수 있으며 1GB 이상의 XML을 처리했습니다. 이것은 문제를 해결하기위한 해결책이 아닙니다. – paulzip

+0

그래, 이상적인 솔루션이 아니야, 특히 당신이 제안한 것과 같은 큰 XML 문자열을 가지고 있지만 OP의 필요에 따라 작동하거나 적어도 대안 솔루션을 생각하게하는 경우가 있습니다. – bbrumm

관련 문제