| 윈 토토 : 문서 : 9.4 : 윈 토토 | |||
|---|---|---|---|
| PostgreSQL : 문서 : 9.4 : 배트맨 토토 배트맨 토토 | 토토 사이트 순위 : 문서 : 9.4 : 큰 개체 | 32장. 대형 객체 | PostgreSQL : 문서 : 9.4 : 예제 토토 커뮤니티 |
SQL에서 큰 개체를 조작하기 위해 맞춤화된 서버 측 기능은 다음에 나열되어 있습니다.표 32-1.
표 32-1. SQL 지향 대형 객체 함수
| 기능 | 반환 유형 | 설명 | 예 | 결과 |
|---|---|---|---|---|
lo_from_bytea(로이드 oid, 문자열 바이테아) |
oid | 대형 개체를 생성하고 거기에 데이터를 저장하고 OID를 반환합니다. 합격0시스템이 OID를 선택하도록 합니다. | lo_from_bytea(0, '\xffffff00') | 24528 |
lo_put(로이드 oid, 오프셋 비긴트, str 바이테아) |
공허 | 주어진 오프셋에 데이터를 씁니다. | lo_put(24528, 1, '\xaa') | |
lo_get(로이드 oid [, from 비긴트, for int]) |
바이테아 | 콘텐츠 또는 그 하위 문자열을 추출합니다. | lo_get(24528, 0, 3) | \xffaaff |
앞서 설명한 각 클라이언트 측 기능에 해당하는 추가 서버 측 기능이 있습니다. 실제로 대부분의 경우 클라이언트 측 기능은 동등한 서버 측 기능에 대한 단순한 인터페이스입니다. SQL 명령을 통해 호출하기에 편리한 것은 다음과 같습니다.lo_creat, lo_create, lo_unlink, lo_import및lo_export. 사용 예는 다음과 같습니다.
테이블 이미지 생성(
이름 텍스트,
래스터형
);
SELECT lo_creat(-1); -- 새로운 빈 대형 객체의 OID를 반환합니다.
SELECT lo_create(43213); -- OID 43213을 사용하여 대형 개체를 생성하려고 시도합니다.
SELECT lo_unlink(173454); -- OID가 173454인 대형 객체를 삭제합니다.
INSERT INTO 이미지(이름, 래스터)
VALUES('아름다운 이미지', lo_import('/etc/motd'));
INSERT INTO 이미지(이름, 래스터) -- 위와 동일하지만 사용할 OID를 지정합니다.
VALUES('아름다운 이미지', lo_import('/etc/motd', 68583));
SELECT lo_export(image.raster, '/tmp/motd') FROM 이미지
WHERE 이름 = '아름다운 이미지';
서버측lo_import그리고lo_export함수는 클라이언트측 아날로그와 상당히 다르게 동작합니다. 이 두 함수는 데이터베이스 소유 사용자의 권한을 사용하여 서버의 파일 시스템에서 파일을 읽고 씁니다. 따라서 해당 사용은 슈퍼유저로 제한됩니다. 이와 대조적으로 클라이언트측 가져오기 및 내보내기 기능은 클라이언트 프로그램의 권한을 사용하여 클라이언트의 파일 시스템에서 파일을 읽고 씁니다. 클라이언트 측 기능에는 슈퍼유저 권한이 필요하지 않습니다.
기능lo_read그리고lo_write은(는) 서버측 호출을 통해서도 사용할 수 있지만 서버측 함수의 이름은 밑줄을 포함하지 않는다는 점에서 클라이언트측 인터페이스와 다릅니다. 이 함수를 다음과 같이 호출해야 합니다.읽어보세요그리고로우라이트.