system command in dblink?

Started by AI Rummanalmost 15 years ago3 messagesgeneral
Jump to latest
#1AI Rumman
rummandba@gmail.com

Is it possible to execute system commands in dblink connections?

I need to execute \i /tmp/test.sh in a remote connection from my psql client
prompt.
I connected with the remote db using dblink_connect.

select dblink_connect('conn_1', 'dbname=newdb');

Any help please.

#2Merlin Moncure
mmoncure@gmail.com
In reply to: AI Rumman (#1)
Re: system command in dblink?

On Tue, Jun 14, 2011 at 1:17 AM, AI Rumman <rummandba@gmail.com> wrote:

Is it possible to execute system commands in dblink connections?

I need to execute \i /tmp/test.sh in a remote connection from my psql client
prompt.
I connected with the remote db using dblink_connect.

select dblink_connect('conn_1', 'dbname=newdb');

the '\i' syntax only means anything to psql, so no. This might help
though: http://plsh.projects.postgresql.org/

merlin

#3mike stanton
mike.stanton@autocastillo.cl
In reply to: AI Rumman (#1)
Re: system command in dblink?

you could try creating a perl function

CREATE OR REPLACE FUNCTION "public"."system" (cmd varchar) RETURNS text AS
$body$
return `$_[0]`;
$body$
LANGUAGE 'plperlu' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

then using it in this way

sql = 'select system( '
|| ' ''/home/iv_fmaster/bin/main_wms 99 '
|| new.iddocsalida || ''' )';

select dblink_exec('paso_lx',sql,TRUE)
into ifres;

cheers mike stanton

----- Original Message -----
From: AI Rumman
To: pgsql-general General
Sent: Tuesday, June 14, 2011 2:17 AM
Subject: [GENERAL] system command in dblink?

Is it possible to execute system commands in dblink connections?

I need to execute \i /tmp/test.sh in a remote connection from my psql client prompt.
I connected with the remote db using dblink_connect.

select dblink_connect('conn_1', 'dbname=newdb');

Any help please.

__________ Información de ESET NOD32 Antivirus, versión de la base de firmas de virus 6208 (20110614) __________

ESET NOD32 Antivirus ha comprobado este mensaje.

http://www.eset.com