Thread: Оригинальный Вопрос
Добрый день
Есть вопрос:
Есть две базы с таблицей
CREATE TABLE sys.files(
bd character(3),
file oid,
dat timestamp without time zone DEFAULT now()
)WITH ( OIDS=FALSE);
К базе1 подключена база2 для передачи данных в основную (файлы)
CREATE FOREIGN TABLE kku.fkas
(bd character(3) ,
file oid ,
dat timestamp without time zone )
SERVER bd2
OPTIONS (table_name 'files', schema_name 'sys');
В таблицах хранятся файлы. (IOD)
Если я просто перекидываю из одной таблицы в другую данные
INSERT INTO kku.files (select * FROM kku.fkas);
Данные передаются, но естественно, только уже ненужные ссылки на OIDы
А как перетащить именно данные? Направьте, пожалуйста.
PS данные загружаются при помощи php по принципу такого алгоритма:
//Помещение файла в таблицу
$file_handle=fopen("$userfile_name", "rb"); //Открываем курсор файла, который мы только что закачали на сервер для бинарного чтения (rb)
$file_content = fread($file_handle, filesize($userfile_name)); //Читаем файл в переменную
fclose($file_handle); //Закрываем курсор
pg_exec ($conn, "BEGIN;"); //Работа с lo требует транзакции
$oid = pg_locreate ($conn); //Создаем большой объект
$handle = pg_loopen ($conn, $oid, "wb"); //Открываем его для записи (на всякий случай к флагу w добавляем b для бинарников)
pg_lowrite ($handle, $file_content); //Записываем в объект содержимое файла
@pg_exec($conn, "INSERT INTO kku.filses (bd, file) VALUES (‘BD1’,$oid);");
Добрый день
Есть вопрос:
Есть две базы с таблицей
CREATE TABLE sys.files(
bd character(3),
file oid,
dat timestamp without time zone DEFAULT now()
)WITH ( OIDS=FALSE);
К базе1 подключена база2 для передачи данных в основную (файлы)
CREATE FOREIGN TABLE kku.fkas
(bd character(3) ,
file oid ,
dat timestamp without time zone )
SERVER bd2
OPTIONS (table_name 'files', schema_name 'sys');
В таблицах хранятся файлы. (IOD)
Если я просто перекидываю из одной таблицы в другую данные
INSERT INTO kku.files (select * FROM kku.fkas);
Данные передаются, но естественно, только уже ненужные ссылки на OIDы
А как перетащить именно данные? Направьте, пожалуйста.
PS данные загружаются при помощи php по принципу такого алгоритма:
//Помещение файла в таблицу
$file_handle=fopen("$userfile_name", "rb"); //Открываем курсор файла, который мы только что закачали на сервер для бинарного чтения (rb)
$file_content = fread($file_handle, filesize($userfile_name)); //Читаем файл в переменную
fclose($file_handle); //Закрываем курсор
pg_exec ($conn, "BEGIN;"); //Работа с lo требует транзакции
$oid = pg_locreate ($conn); //Создаем большой объект
$handle = pg_loopen ($conn, $oid, "wb"); //Открываем его для записи (на всякий случай к флагу w добавляем b для бинарников)
pg_lowrite ($handle, $file_content); //Записываем в объект содержимое файла
@pg_exec($conn, "INSERT INTO kku.filses (bd, file) VALUES (‘BD1’,$oid);");