Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / bytea сохранить на диск. возможно ли из ХП? / 9 сообщений из 9, страница 1 из 1
02.06.2015, 12:57
    #38974224
gebermes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
есть ХП, которая принимает массив байт.
этот массив байт необходимо сохранить на локальный диск, каким образом это можно реализовать?

plpgsql такое позволяет делать? если нет, то необходимо использовать "с"?
...
Рейтинг: 0 / 0
02.06.2015, 13:16
    #38974251
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
gebermes,

Нужно клиентское приложение или un-trusted процедурный язык (С подойдет).
...
Рейтинг: 0 / 0
02.06.2015, 13:25
    #38974267
gebermes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
vyegorov, покапавшись в справке и на форуме нашел
Код: sql
1.
COPY () TO 'файл';


результат запросов сохраняет, сейчас с приложения передаю массив байт, буду пробовать.

а без си никак? может вам поподались примеры реализации?
...
Рейтинг: 0 / 0
02.06.2015, 13:40
    #38974282
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
gebermes,

COPY вставляет шапку.

я пользуюсь для разовых выгрузок adminpack.pg_file_write
и его производными
http://www.sql.ru/forum/actualsearch.aspx?search=adminpack pg_file_write&sin=0&bid=7&a=&ma=0&dt=-1&s=1&so=1
...
Рейтинг: 0 / 0
02.06.2015, 16:52
    #38974484
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
gebermes,

Допустим, что PostgreSQL вертится на линуксе и в хранимке вы используете COPY для записи в файл '/home/user/out/file.name'.
Хранимка сама не запускается, нужно клиентское соединение которое запустит хранимку, но COPY сделает сервер. Пока база и клиент сидят на одной машине все выглядит хорошо. Как только клиент становится удаленным, нужно иметь в виду, что путь для COPY должен быть серверный.

Пробуйте скриптовать, ничего тут сложного нет.
...
Рейтинг: 0 / 0
02.06.2015, 18:03
    #38974570
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
gebermesесть ХП, которая принимает массив байт.
этот массив байт необходимо сохранить на локальный дискне понял, кто кому локальный и, если ХП уже есть, то кому нужно сохранить принимаемый ею массив.
Из plpgsql можно записать файл на сервере через лобы, copy, а можно и utl_file прикрутить - не уверен, что последние два корректно отработают с бинарными данными.

vyegorovпуть для COPY должен быть серверныйбеспутный copy можно направить в клиента
...
Рейтинг: 0 / 0
02.06.2015, 22:35
    #38974746
gebermes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
p2.gebermesесть ХП, которая принимает массив байт.
этот массив байт необходимо сохранить на локальный дискне понял, кто кому локальный и, если ХП уже есть, то кому нужно сохранить принимаемый ею массив.
Из plpgsql можно записать файл на сервере через лобы, copy, а можно и utl_file прикрутить - не уверен, что последние два корректно отработают с бинарными данными.

vyegorovпуть для COPY должен быть серверныйбеспутный copy можно направить в клиента

есть ХП у которой входящий параметр JSONB, в этом параметре содержатся поля для вставки в бд и массив байт в base64, и этот массив необходимо перекодировать (с этим вроде бы все хорошо), и сохранить на серваке в файл на диске D:\папка
так наверное правильное будет описание ТЗ.

каким способом это лучше сделать, что бы нагрузка на сервер была минимальной.


тут звучала фраза "клиентское приложение", скорее всего не до конца уловил вашу мысль, могли чуть подробнее?
...
Рейтинг: 0 / 0
03.06.2015, 01:00
    #38974791
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
gebermesне до конца уловилчего уж тут ловить. Выполняю из базового каталога сервера:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
postgres=# select lo_from_bytea(0, E'\\xaa5500ff') lobid
postgres-# \gset
postgres=# select lo_export(:lobid, 'tmp/test1.lob');
 lo_export 
-----------
         1
(1 row)

postgres=# select lo_unlink(:lobid);
 lo_unlink 
-----------
         1
(1 row)

postgres=# \! ls -l tmp/test1.lob
-rw-r--r--. 1 postgres postgres 4 Jun  3 00:54 tmp/test1.lob
postgres=# \! od -t x1 tmp/test1.lob
0000000 aa 55 00 ff
0000004
postgres=# 
...
Рейтинг: 0 / 0
03.06.2015, 10:25
    #38974947
gebermes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bytea сохранить на диск. возможно ли из ХП?
p2.спасибо

немного уйду от темы. передаю JSON в ХП с массив байт,
массив байт кодирован base64 и добавлено экранирование служебных символов.
decode base64 не хочет глотать текст с экранироваными символами.

как убрать эти символы и привести текст к нормальному виду?
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / bytea сохранить на диск. возможно ли из ХП? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]