
OCILob::read 메소드의 offset 파라미터는 LOB의 시작점부터 데이터를 읽기 시작할 위치를 지정하는 역할을 합니다. offset이 0인 경우, LOB의 시작점부터 데이터를 읽기 시작하므로, 실제로 데이터를 읽을 수 없습니다.
이유는 LOB는 실제 데이터가 저장된 위치가 아니라, 데이터의 위치를 저장하는 포인터를 저장하는 메타데이터로 구성되어 있기 때문입니다. 따라서 offset이 0인 경우, 실제 데이터를 읽을 수 없습니다.
offset이 0이 아닌 숫자를 지정해야 하는 이유는 LOB의 시작점부터 데이터를 읽기 시작할 위치를 지정하기 위해서입니다. 예를 들어, offset을 10으로 지정하면, LOB의 10번째 위치부터 데이터를 읽기 시작합니다.
offset이 0인 경우, 데이터를 읽을 수 없으므로, 다른 방법을 사용해야 합니다. 예를 들어, OCILob::getLength 메소드를 사용하여 LOB의 길이를 가져와서, offset을 1로 지정하여 데이터를 읽을 수 있습니다.
또는, OCILob::read 메소드의 length 파라미터를 사용하여, offset부터 데이터를 읽을 수 있는 길이를 지정할 수 있습니다. 예를 들어, offset을 10으로, length를 20으로 지정하면, LOB의 10번째 위치부터 30번째 위치까지의 데이터를 읽을 수 있습니다.
2025-05-01 19:55