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

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

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


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

а без си никак? может вам поподались примеры реализации?
...
Рейтинг: 0 / 0
bytea сохранить на диск. возможно ли из ХП?
    #38974282
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
bytea сохранить на диск. возможно ли из ХП?
    #38974484
Фотография vyegorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gebermes,

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

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

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

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

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

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


тут звучала фраза "клиентское приложение", скорее всего не до конца уловил вашу мысль, могли чуть подробнее?
...
Рейтинг: 0 / 0
bytea сохранить на диск. возможно ли из ХП?
    #38974791
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
bytea сохранить на диск. возможно ли из ХП?
    #38974947
gebermes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
p2.спасибо

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

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


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