오라클 문자열을 합치려는데요 0 8 2,506

by 도지니 [Toad] [2016.11.10 11:04:15]


감사합니다 꾸벅 !

by 마농 [2016.11.10 11:19:33]

그룹바이에서 문자열을 합쳐야 합니다.
  - XMLAGG(9i), WM_CONCAT(10g), LISTAGG(11g) 사용해야 합니다.
  - http://www.gurubee.net/article/55512
계층쿼리를 이용하여 구할 수도 있습니다.
  - SYS_CONNECT_BY_PATH(9i)
이런것들을 제외하는 이유가 뭐가요?
  - 질문의 의도가 뭘까요?


by 도지니 [2016.11.10 11:21:35]

오라클 9i를 사용중인데 버전이 안맞는것들 빼고 다 해봤는데..

sys_connect_by_path는 문자열 연결의 결과가 너무 깁니다 라고 나오구요(bumber형)

xmlagg도 사용해봤는데 문자열 버퍼가 너무 작습니다 라는 오류가 나옵니다...

 


by 마농 [2016.11.10 11:30:46]

위 링크 보시면 답변중에 해당 오류에 대한 해결방안도 있습니다.


by 마농 [2016.11.10 13:09:31]

"문자열 연결의 결과가 너무 깁니다" 는 연결문자가 4000Byte 를 넘을 때 나는 것이고.
"문자열 버퍼가 너무 작습니다" 는 변수에 값을 담을 때 나는 오류입니다.
변수의 크기 및 타입을 확인해 보세요.


by 마농 [2016.11.10 13:41:12]

전체 사용 SQL 을 올려주세요.

짤막하게 끊어서 질문하지 마시고 전후사정을 종합하여 질문해 주세요.


by 마농 [2016.11.10 14:38:14]

사용하신 쿼리에 문제가 있어 보이네요.
문자열 붙이기를 수행하기 직전 소스 쿼리를 완성하셔야 할 듯 합니다.
완성된 쿼리로 문자열 붙이기를 수행하시면 될 듯 하네요.
우선 문자열 붙이기 없는 상태의 쿼리를 완성시켜 보세요.


by 마농 [2016.11.10 15:44:04]

수행 전 쿼리 중간중간에 문자열 합치기 코드를 삽입하지 마시고.

수행 전 쿼리를 가지고 최종적으로 문자열 합치기를 시도하세요.

 

버퍼 오류도 그 때문인 듯 합니다.

정제되지 않은 자료를 합치려고 시도하려다 보니 문자열이 길어진거죠.


by 도지니 [2016.11.10 15:48:49]

아... 결과값에서 최종적으로 문자열 합치기를 시도해보겠습니다.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입