Установите xslt_process в Windows ProstgreSQL 8.4, если он не был установлен во время работы PostgreSQL - PullRequest
0 голосов
/ 18 января 2011

Возможно ли это? Если так, то как?

Я посмотрел на Libxslt, который он использует, но, похоже, он включает в себя установку набора двоичных файлов и все еще не будет доступен в качестве функции PostgreSQL ...

ОБНОВЛЕНИЕ: В результате у меня возникли проблемы с использованием xlst_process() при больших преобразованиях, которые привели к сбою PostgreSQL и в результате были использованы FOP, вызванные функцией plpythonu.

Ответы [ 2 ]

0 голосов
/ 19 января 2011

xslt_process () требует, чтобы Libxml был установлен, доступен (путем добавления переменных среды Windows PATH) и создаваемой функции xslt_process ()

Решение:

  1. Загрузите и извлеките zip: libxslt-1.1.26.win32.zip с ftp://ftp.zlatkovic.com/libxml/, чтобы поместить его в свой каталог
  2. Добавьте местоположение xsltproc.exe впеременная среды Windows PATH, например: "C: \ libxml \ libxslt-1.1.26.win32 \ bin".Вы будете знать, что это работает, когда вы можете запустить его из строки cmd.
  3. libxml2.dll, libxslt.dll и iconv.dll, которые также требуются для xsltproc.exe (их можно загрузить по приведенной выше ссылке, ноЯ обнаружил, что они уже находятся в моей директории PostgreSQL \ 8.4 (bin), и мне нужно, чтобы их местоположение также было добавлено в Windows PATH, например: "C: \ PostgreSQL \ 8.4 \ bin"
  4. Запустите SQL(который я скопировал из нижней части "PostgreSQL \ 8.4 \ share \ contrib \ pgxml.sql"):
    CREATE OR REPLACE FUNCTION xslt_process(text,text,text)
    RETURNS text
    AS '$libdir/pgxml'
    LANGUAGE C STRICT VOLATILE;
    
    -- the function checks for the correct argument count
    
    CREATE OR REPLACE FUNCTION xslt_process(text,text)
    RETURNS text
    AS '$libdir/pgxml'
    LANGUAGE C STRICT IMMUTABLE;
      </li>
    </ol>
    
    <p>

    Двоичные файлы окон Libxml тщательно поддерживаются и предоставляются: http://www.zlatkovic.com/libxml.en.html

    (ПРИМЕЧАНИЕ: переменные среды пользователя Windows не требуют перезапуска, а доступны только для пользователя, поэтому мой совет - добавить переменные в системные и пользовательские PATH)

0 голосов
/ 18 января 2011

xslt_process является частью модуля contrib xml2http://www.postgresql.org/docs/current/static/xml2.html

Поэтому установка этого модуля должна дать вам xstl_process ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...