関連リンク:
これが私のエラーです:
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))
二重引用符を使用する場合は、一重引用符の円記号エスケープを削除し、SELECTステートメントの前のEを削除します
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