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

а по теме:

Строковые литералы и экранирующие символы в postgresql

Вот моя ошибка:

ERROR:  type "e" does not exist

Вот мой запрос:

SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
    E'SELECT field_1, 
    CASE WHEN field_2 IS NOT NULL 
    THEN \'inactive\' ELSE \'active\' 
    END AS field_status 
    FROM the_table 
     ') 
AS linkresults(field_1 varchar(20),field_2 varchar(8))

Если я использую двойные кавычки, удалите обратную косую черту для одинарных кавычек и удалите E перед оператором SELECT

SELECT *
FROM dblink('host=theHostName port=1234 dbname=theDBName user=theUser password=thePassword',
    "SELECT field_1, 
    CASE WHEN field_2 IS NOT NULL 
    THEN 'inactive' ELSE 'active' 
    END AS field_status 
    FROM the_table 
     ") 
AS linkresults(field_1 varchar(20),field_2 varchar(8))

Я получаю это:

NOTICE:  identifier "SELECT ..." will be truncated

И я также получаю ОШИБКУ, поскольку мой запрос был усечен.

Я уже сбежал с dblink, как это раньше, так есть ли настройки сервера или что-то, что мне нужно настроить?

Я знаю, что запрос работает нормально, если я запускаю его на самом сервере sql, но не с помощью dblink. есть идеи?

Postgres версия 8.4

Ответы на вопрос(2)

Ваш ответ на вопрос