에러 메시지::
ORA-22835: 버퍼가 너무 작아 CLOB를 CHAR 또는 BLOB에서 RAW로 변환할 수 없습니다(실제: 4467, 최대: 4000)
SELECT
|
ST_GEOMETRY 를 이용하여 공간쿼리중 shape 필드를 wkt로 변환하던 도중 4000 자 이상오류 발생...
CLOB으로 변환 후 4000자씩 끊어서 쿼리해 오고 프로그램에서 붙여서 사용하는 것으로 결정..
2000만자가 안넘는다는 가정하게 꼼수로 처리.. 넘는다면 컬럼을 더 붙여야 할 듯...
암튼 4000자가 넘는 문자열을
TO_CLOB으로 변환 후 dbms_lob.substr(CLOB컬러,가져올문자수,시작위치)로 4000개씩 끊어서 가져온 후 프로그램에서 붙여서 사용.
올바른 사용법인지는 잘 모르겠음.ㅋㅋ
SELECT
TO_CHAR(dbms_lob.substr(A.WKT,4000,1) ) AS TEST1,
TO_CHAR(dbms_lob.substr(A.WKT,8000,4001) ) AS TEXT2,
TO_CHAR(dbms_lob.substr(A.WKT,12000,84001) ) AS TEXT3,
TO_CHAR(dbms_lob.substr(A.WKT,16000,12001) ) AS TEXT4,
TO_CHAR(dbms_lob.substr(A.WKT,20000,16001) ) AS TEXT5
FROM
(
SELECT
TO_CLOB( SDE.ST_ASTEXT(b.SHAPE) ) AS WKT
FROM DHT_ROBD_CN a
INNER JOIN DHL_BULD_AS b ON a.BLD_IDN = b.BLD_IDN
WHERE
1!=1
or a.ROM_IDN ='1111'
) A
'SQL > ORACLE 4000Byte 이상 처리' 카테고리의 다른 글
[ORACLE] iBatis 2.1.x, CLOB, LONG 처리 (0) | 2015.11.03 |
---|---|
oracle Long 타입 필드에 4000자 이상 넣기 (0) | 2015.10.15 |
oracle 4000자 이상 넣기 (0) | 2015.10.15 |