본문 바로가기
Oracle

ORA-06502: PL/SQL: 수치 또는 값 오류

by IT History 2023. 7. 20.
728x90
반응형
ORA-06502: PL/SQL: 수치 또는 값 오류

UTL_SMTP으로 메일발송을 하기위해 html 의 값을 clob으로 넣어 발송시 오류가 발생 하였다.

UTL_SMTP.write_raw_data 으로 clob 데이터 전송시 최대크기는 32K(32767byte)를 넘어서 발생 하여 아래와 같이 수정 하였다.

V_HTML은 html 형식이 들어가 있다.

******생략
V_HTML CLOB;

ClobLen PLS_INTEGER;
amount BINARY_INTEGER := 8192;
buffer VARCHAR2(16384);
offset PLS_INTEGER := 1;

******생략
V_HTML := '<html>' || LV_CRLF

ClobLen := DBMS_LOB.GETLENGTH(V_HTML);
LOOP
    EXIT WHEN offset > ClobLen;
    DBMS_LOB.READ(V_HTML, amount, offset, BUFFER);
    UTL_SMTP.write_raw_data(V_MAIL_CONN, UTL_RAW.cast_to_raw(BUFFER));
    offset := offset + amount;
END LOOP;   
UTL_SMTP.write_data(V_MAIL_CONN, UTL_TCP.CRLF);
728x90
반응형

댓글