转换dblink postgresql中连接字符串的带引号字符串中的变量值

时间:2015-01-23 09:22:02

标签: postgresql dblink

Postgresql 9.1中,dblink的连接字符串必须位于带引号的字符串中。

我的问题是我的dbname来自变量值

\set connect quote_ident('dbname=mydb')        
SELECT dblink_connect(connect);

quote_identquote_literal无效。怎么把这个引用的字符串赋值?

1 个答案:

答案 0 :(得分:0)

你不需要使用这样的引用,只看这个例子

create or replace function fn_test_dblink (db text) returns text as 
$$
select dblink_connect('dbname='||db||' ')
$$
language sql

这里将数据库名称传递给db function

中的fn_test_dblink
select fn_test('GBL') -- GBL is my Database

你只需将变量赋予

select dblink_connect('dbname='||your_variable||' ')

而不是这个  \set connect quote_ident('dbname=mydb')