라이브러리
[PHP] OCILob::export - LOB의 내용을 파일에 내보냅니다.
OCILob::export 개요
OCILob::export는 Oracle의 Large Object (LOB) 데이터를 PHP에서 쉽게 관리할 수 있도록 하는 함수입니다. LOB 데이터는 BLOB (Binary Large OBject), CLOB (Character Large OBject), BFILE (Binary File) 등 다양한 형식으로 존재할 수 있습니다. OCILob::export 함수는 LOB 데이터를 PHP의 스트림 형식으로 변환하여 반환합니다.
OCILob::export 사용법
OCILob::export 함수는 다음과 같은 형식으로 호출됩니다.
#hostingforum.kr
php
string OCILob::export (int $lob_locator, int $offset, int $buf_size, int $chunk_size, int $mode)
* `$lob_locator`: LOB 데이터를 관리하는 OCILob 객체의 인스턴스입니다.
* `$offset`: 데이터를 읽기 시작할 위치입니다.
* `$buf_size`: 데이터를 읽을 버퍼의 크기입니다.
* `$chunk_size`: 데이터를 읽을 때마다 반환할 데이터의 크기입니다.
* `$mode`: 데이터를 읽을 때의 모드입니다. 가능한 모드는 다음과 같습니다.
* OCI_LOB_READONLY: 읽기 전용 모드
* OCI_LOB_READWRITE: 읽기/쓰기 모드
예제
다음 예제는 OCILob::export 함수를 사용하여 BLOB 데이터를 PHP의 스트림 형식으로 변환하는 방법을 보여줍니다.
#hostingforum.kr
php
// Oracle 연결
$conn = oci_connect('사용자 이름', '비밀번호', '호스트 이름:포트 번호/서비스 이름');
// 테이블 생성
$sql = "CREATE TABLE test_lob (
id NUMBER PRIMARY KEY,
blob_data BLOB
)";
oci_execute(oci_parse($conn, $sql));
// 데이터 삽입
$sql = "INSERT INTO test_lob (id, blob_data) VALUES (1, EMPTY_BLOB())";
oci_execute(oci_parse($conn, $sql));
// BLOB 데이터 삽입
$blob_data = oci_create_blob($conn, 'test_lob', 'blob_data', 'Hello, World!');
oci_commit($conn);
// OCILob::export 함수 호출
$lob_locator = oci_new_descriptor($conn, OCI_D_LOB);
oci_execute(oci_parse($conn, "SELECT blob_data FROM test_lob WHERE id = 1"));
$lob_locator->load();
$offset = 0;
$buf_size = 1024;
$chunk_size = 1024;
$mode = OCI_LOB_READONLY;
while (true) {
$data = OCILob::export($lob_locator, $offset, $buf_size, $chunk_size, $mode);
if ($data === false) {
break;
}
echo $data;
$offset += $chunk_size;
}
// Oracle 연결 종료
oci_close($conn);
이 예제에서는 Oracle에 연결하여 테이블을 생성하고 BLOB 데이터를 삽입한 후, OCILob::export 함수를 사용하여 BLOB 데이터를 PHP의 스트림 형식으로 변환합니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.