ORACLE CLOB타입을 이용한 무한(?) 텍스트 입력
오라클의 VARCHAR 타입은 4000이 MAX이다.
그나마도 실제로 올려보믄 1500자 내외에서 짤려버린다.
방법은 있지만 일반적으로 파일이나 이미지 업뎃할때 사용하는 CLOB 타입으로 해결두 가능하다.
4GB까정...
간단하게 예제만으로도 충분하리라 본다.
[INSERT 예제..]
-- PLSQL 프로시저로............
CREATE OR REPLACE PROCEDURE TCNWEB.p_upt_freeboard
(
p_subject IN WB_FREEBOARD.FREE_SUBJECT%TYPE -- 제목
, p_contents IN WB_FREEBOARD.FREE_CONTENTS%TYPE -- 내용
, p_parents IN WB_FREEBOARD.FREE_PARENTS%TYPE -- 댓글일 경우
, p_user IN WB_FREEBOARD.FREE_USER%TYPE
)
IS
v_clob CLOB;
BEGIN
IF p_contents IS NOT NULL THEN
INSERT INTO WB_FREEBOARD(FREE_SUBJECT, FREE_CONTENTS, FREE_PARENTS, FREE_USER)
VALUES(p_subject, EMPTY_CLOB(), p_parents, p_user)
RETURNING FREE_CONTENTS INTO v_clob;
DBMS_LOB.WRITE(v_clob, LENGTH(p_contents), 1, p_contents);
COMMIT;
END IF;
END p_upt_freeboard;
SQL에서 사용한다믄...
EXEC p_upt_freeboard('테스트6', '다시한번2', '', 'aaaa');
[SELECT 예제..]
SELECT SEQ_NUM
, FREE_SUBJECT
, DBMS_LOB.SUBSTR(FREE_CONTENTS, DBMS_LOB.GETLENGTH(FREE_CONTENTS), 1)
FROM WB_FREEBOARD