Обсуждение: функция на plperl для чтения файла с диска

Поиск
Список
Период
Сортировка

функция на plperl для чтения файла с диска

От
Serik
Дата:
Добрый день !

Нужно прочитать файл с диска сервера, и передать его на
клиент через PostgreSQL.

функция чтения

-- Function: read_file(text)
-- DROP FUNCTION read_file(text);
CREATE OR REPLACE FUNCTION read_file(text)
  RETURNS bytea AS
$BODY$
my $file=@_[0];
return `type $file`;    -- `cat $file` for linux

$BODY$
  LANGUAGE 'plperlu' VOLATILE;

Пример запроса
 select * from read_file($$d:\file.mp3$$);

возвращает 13 байт вместо 6 Мб.

Подозреваю что это связано с encode/decode
Что прочитать ?

Server PostgreSQL 8.1 Win2k

Спасибо !

Re: функция на plperl для чтения файла с диска

От
sanya-spb@mail.ru
Дата:
Привет

Тебе надо файл перекодировать в escape последовательности

а почитать - внимательно секцию 8.4 Binari Data Types



В сообщении от Tuesday 28 March 2006 14:12 Serik написал(a):
> Добрый день !
>
> Нужно прочитать файл с диска сервера, и передать его на
> клиент через PostgreSQL.
>
> функция чтения
>
> -- Function: read_file(text)
> -- DROP FUNCTION read_file(text);
> CREATE OR REPLACE FUNCTION read_file(text)
>   RETURNS bytea AS
> $BODY$
> my $file=@_[0];
> return `type $file`;    -- `cat $file` for linux
>
> $BODY$
>   LANGUAGE 'plperlu' VOLATILE;
>
> Пример запроса
>  select * from read_file($$d:\file.mp3$$);
>
> возвращает 13 байт вместо 6 Мб.
>
> Подозреваю что это связано с encode/decode
> Что прочитать ?
>
> Server PostgreSQL 8.1 Win2k
>
> Спасибо !
>
> ---------------------------(end of broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
>                http://archives.postgresql.org

-----------------------------------------------------------