개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.04 14:28

OCILob::read 함수에 대한 질문

목록
  • 자바스크립트귀신 12일 전 2025.07.04 14:28
  • 11
    1
저는 OCILob::read 함수를 사용하여 BLOB 데이터를 읽어오려는데, 다음의 문제점에 직면했습니다.

- OCILob::read 함수의 반환값에 대한 이해가 부족합니다.
- BLOB 데이터를 읽어올 때 충분한 데이터를 읽어오지 못하는 경우가 발생합니다.

이러한 문제점을 해결하고자 OCILob::read 함수에 대한 더 자세한 설명과 예제를 요청드립니다.

    댓글목록

    profile_image
    나우호스팅  12일 전



    OCILob::read 함수는 Oracle Database에서 BLOB 데이터를 읽어오는 함수입니다.

    함수의 반환값은 읽어온 데이터의 크기입니다.

    BLOB 데이터를 충분히 읽어오지 못하는 경우, 함수의 두 번째 인자인 buf_len을 증가시켜야 합니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $lob = oci_new_descriptor($conn, OCI_D_LOB);
    
    $lob->write($blob_data, strlen($blob_data));
    
    
    
    $buf = '';
    
    $buf_len = 1024;
    
    while (true) {
    
        $read_len = $lob->read($buf, $buf_len);
    
        if ($read_len == 0) break;
    
        $buf = substr($buf, 0, $read_len);
    
    }
    
    


    이 예제에서는 BLOB 데이터를 1024바이트씩 읽어옵니다.

    만약 BLOB 데이터의 크기가 1024의 배수가 아닌 경우, 마지막에 읽어온 데이터의 크기는 1024보다 작을 수 있습니다.

    이 경우, buf를 잘라서 사용해야 합니다.

    또한, OCILob::read 함수는 Oracle Database의 버전과 플랫폼에 따라 동작이 다를 수 있습니다.

    따라서, Oracle Database의 공식 문서를 참조하여 함수의 사용법을 확인하는 것이 좋습니다.

    2025-07-04 14:29

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 36,394건 / 14 페이지

검색

게시물 검색