相關鏈接:Postgres的DBLINK逃避單引號
這是我的錯誤:
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))
如果我ü SE雙引號,刪除反斜槓逃逸的單引號和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 server本身上運行它,但沒有與dblink運行。有什麼想法嗎?
的Postgres 8.4版
@n iktrs你的文章工作,爲什麼刪除它? –
我已經將它更新爲更簡單的東西。如果它不起作用,我可以報告以前的答案。 – niktrs