Thread: How can i pass variable in dblink_connect_u ?
Hi All,
how can I pass variables in dblink_connect_u ?
Current code hardcoded DB name:
perform * from dblink_connect_u('myconn','dbname=mydb');
Expected:
databasename=current_database();
perform * from dblink_connect_u('myconn','dbname=databasename');
databasename is getting considered as text.
Thanks in advance
Regards,
Aditya.
On 2/1/22 05:42, aditya desai wrote: > Hi All, > how can I pass variables in dblink_connect_u ? > > Current code hardcoded DB name: > perform * from dblink_connect_u('myconn','dbname=mydb'); > > Expected: > databasename=current_database(); > perform * from dblink_connect_u('myconn','dbname=databasename'); > > databasename is getting considered as text. Correct, it is a string literal. So just create the string literal using string manipulation functionality -- e.g.: SELECT dblink_connect_u('myconn','dbname=' || current_database()); dblink_connect_u ------------------ OK (1 row) HTH, Joe -- Crunchy Data - http://crunchydata.com PostgreSQL Support for Secure Enterprises Consulting, Training, & Open Source Development
Thanks Joe
On Tue, Feb 1, 2022 at 7:11 PM Joe Conway <mail@joeconway.com> wrote:
On 2/1/22 05:42, aditya desai wrote:
> Hi All,
> how can I pass variables in dblink_connect_u ?
>
> Current code hardcoded DB name:
> perform * from dblink_connect_u('myconn','dbname=mydb');
>
> Expected:
> databasename=current_database();
> perform * from dblink_connect_u('myconn','dbname=databasename');
>
> databasename is getting considered as text.
Correct, it is a string literal. So just create the string literal using
string manipulation functionality -- e.g.:
SELECT
dblink_connect_u('myconn','dbname=' ||
current_database());
dblink_connect_u
------------------
OK
(1 row)
HTH,
Joe
--
Crunchy Data - http://crunchydata.com
PostgreSQL Support for Secure Enterprises
Consulting, Training, & Open Source Development