
OCILob::append 메서드는 LOB 데이터의 끝에만 추가할 수 있습니다.
DBMS_Lob.Append(l_lob, l_buffer);와 DBMS_Lob.Write(l_lob, l_amount, l_offset, l_buffer);의 차이점은 다음과 같습니다.
- DBMS_Lob.Append(l_lob, l_buffer); : LOB 데이터의 끝에만 추가합니다.
- DBMS_Lob.Write(l_lob, l_amount, l_offset, l_buffer); : LOB 데이터의 특정 위치에 추가합니다.
따라서, OCILob::append 메서드를 사용할 때는 LOB 데이터의 길이를 늘려야 하는 것이 아닙니다.
예제를 살펴보겠습니다.
plsql
DECLARE
l_lob OCILob.BLOB;
l_offset NUMBER := 0;
l_amount NUMBER := 100;
l_buffer RAW(100) := 'Hello, World!';
BEGIN
l_lob := OCILob.LobLocate(l_lob, 1);
-- OCILob::append 메서드를 사용할 때
DBMS_Lob.Append(l_lob, l_buffer);
-- LOB 데이터의 길이를 확인합니다.
DBMS_Output.Put_Line('LOB 데이터의 길이 : ' || DBMS_Lob.GetLength(l_lob));
END;
위 예제를 실행하면 LOB 데이터의 길이가 증가하지 않음을 확인할 수 있습니다.
plsql
DECLARE
l_lob OCILob.BLOB;
l_offset NUMBER := 0;
l_amount NUMBER := 100;
l_buffer RAW(100) := 'Hello, World!';
BEGIN
l_lob := OCILob.LobLocate(l_lob, 1);
-- LOB 데이터의 길이를 확인합니다.
DBMS_Output.Put_Line('LOB 데이터의 길이 : ' || DBMS_Lob.GetLength(l_lob));
-- OCILob::append 메서드를 사용할 때
DBMS_Lob.Append(l_lob, l_buffer);
-- LOB 데이터의 길이를 확인합니다.
DBMS_Output.Put_Line('LOB 데이터의 길이 : ' || DBMS_Lob.GetLength(l_lob));
END;
위 예제를 실행하면 LOB 데이터의 길이가 증가하지 않음을 확인할 수 있습니다.
따라서, OCILob::append 메서드를 사용할 때는 LOB 데이터의 길이를 늘려야 하는 것이 아닙니다.
2025-03-31 21:10