[SQL] PostgreSQL을 데이터베이스에 이미지를 삽입
SQLPostgreSQL을 데이터베이스에 이미지를 삽입
나는 내 PostgreSQL 데이터베이스의 테이블에 이미지 "bytea와"를 삽입 할 수있는 방법을 알고 싶습니다? 나는 시간 동안 포럼을 검색 봤는데 본 같은 질문을 수십 번을 기록, 아직 하나의 답을 찾을 수 있습니다. 내가 보는 모든 .JPEG 내가 필요하지 않은 오래된 컬럼에 얼마나 삽입하는 방법입니다.
다음은 데이터베이스 테이블입니다 :
create table category (
"id_category" SERIAL,
"category_name" TEXT,
"category_image" bytea,
constraint id_cat_pkey primary key ("id_category"))without oids;
나는 새로운 라인을 추가 할 때, 그것은 작동하지 않습니다 :
insert into category(category_name,category_image) values('tablette', lo_import('D:\image.jpg'));
해결법
-
==============================
1.
insert into category(category_name,category_image) values('tablette', bytea('D:\image.jpg'));
열 유형이 BYTEA 인 경우 위의 솔루션은 작동
insert into category(category_name,category_image) values('tablette', lo_import('D:\image.jpg'));
칼럼 타입 OID 즉 물방울 경우 상기 용액 작동
insert into category(category_name,category_image) values('tablette',decode('HexStringOfImage',hex));
상기 복호 기능은 두 개의 파라미터를 가지고. 첫번째 파라미터 Image.The 번째 파라미터 HexString default.Decode이 기능에 의해 헥스 POSTGRES의 데이터 형식 열에서 바이트 BYTEA 저장소에 hexString을 띤다이다.
-
==============================
2.(약간 여기에서 적응)이 함수 같은 뭔가 해결할 수 있습니다.
(약간 여기에서 적응)이 함수 같은 뭔가 해결할 수 있습니다.
create or replace function img_import(filename text) returns void volatile as $$ declare content_ bytea; loid oid; lfd integer; lsize integer; begin loid := lo_import(filename); lfd := lo_open(loid,131072); lsize := lo_lseek(lfd,0,2); perform lo_lseek(lfd,0,0); content_ := loread(lfd,lsize); perform lo_close(lfd); perform lo_unlink(loid); insert into category values ('tablette', content_); end; $$ language plpgsql
img_import ( 'D : \가 image.jpg') SELECT * FROM처럼 사용; 그것은 같은 느낌 경우 또는 절차를 다시 작성합니다.
-
==============================
3.아래와 같은 기능을 만들 :
아래와 같은 기능을 만들 :
create or replace function bytea_import(p_path text, p_result out bytea) language plpgsql as $$ declare l_oid oid; begin select lo_import(p_path) into l_oid; select lo_get(l_oid) INTO p_result; perform lo_unlink(l_oid); end;$$;
와 같이 사용
insert into table values(bytea_import('C:\1.png'));
-
==============================
4.사용 SQL 워크 벤치 - 데이터베이스 탐색기 - 행을 삽입하고 대화를 따라 ...
사용 SQL 워크 벤치 - 데이터베이스 탐색기 - 행을 삽입하고 대화를 따라 ...
여기에 이미지 설명을 입력
from https://stackoverflow.com/questions/22288898/insert-an-image-in-postgresql-database by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] Extbase은 - 쿼리에서 SQL을 생성 얻을 (0) | 2020.05.28 |
---|---|
[SQL] 열로 날짜를 동적으로 회동하는 방법 (0) | 2020.05.28 |
[SQL] SQL 문자열에 문자열의 첫 번째 발생을 교체 (0) | 2020.05.28 |
[SQL] 초없는 시간 값 데이터로부터 추출하는 방법 (0) | 2020.05.28 |
[SQL] 쿼리 로컬 변수 도움말 최적화로 저장 프로 시저의 입력 매개 변수를 지정합니까? (0) | 2020.05.28 |