postgres dblink échapper l'apostrophe

Lien Connexe:

Voici mon erreur:

ERROR:  type "e" does not exist

Voici ma requête:

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))

Si j'utilise les guillemets, de supprimer la barre oblique inverse échapper les guillemets simples et supprimer les E avant l'instruction 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))

J'obtiens ceci:

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

Et la je reçois aussi l'ERREUR que ma requête a été tronqué.

J'ai échappé avec dblink comme ça avant, donc, il y a un paramètre de serveur ou quelque chose que je dois configurer?

Je sais que la requête fonctionne très bien si je l'exécute sur le serveur sql server lui-même, mais pas avec dblink. Toutes les pensées?

Postgres version 8.4

votre post a travaillé, pourquoi le supprimer?
J'ai mis à jour à quelque chose de plus simple. Si cela ne fonctionne pas je peux en faire rapport à la réponse précédente.

OriginalL'auteur Phill Pafford | 2011-07-07