Re: [GENERAL] multiple sql results to shell - Mailing list pgsql-general

From David G. Johnston
Subject Re: [GENERAL] multiple sql results to shell
Date
Msg-id CAKFQuwaJG=_bNXRFfM2k8s9wqWfthx0d99--rU=WZJww15Sirw@mail.gmail.com
Whole thread Raw
In response to [GENERAL] multiple sql results to shell  (Mark Lybarger <mlybarger@gmail.com>)
List pgsql-general
On Mon, Oct 23, 2017 at 7:08 AM, Mark Lybarger <mlybarger@gmail.com> wrote:
I have this bash/sql script which outputs some curl commands.  the backticks causes it to get interpreted by the shell.   This works fine if there is one result, but when there are many rows returned, it looks like one shell command.  

any help on getting multiple rows returned to be executed by the shell would be appreciated!

thanks!

`psql -P "tuples_only=on" -h ${DB_HOST} -d ${DB_NAME} -U ${DB_USER} -c "select 'curl -X POST http://${REGISTER_HOST}:8080/' || source_id || '/${MT}/' || model || '/' || site || '/backoffice/register' from myschema.events where source_id = $SOURCE_ID and ineffective_date is null"`


​You will need to, instead, "SELECT source_id, model, site​ FROM ..." to return the raw record data to bash and then use bash's loop facilities to dynamically generate and execute the curl command.

A second option, that I've never tried, is returning the full string but not within a backtick command, then using bash looping simply invoke the string like a normal command.

David J.

pgsql-general by date:

Previous
From: Mark Lybarger
Date:
Subject: [GENERAL] multiple sql results to shell
Next
From: Geoff Winkless
Date:
Subject: Re: [GENERAL] multiple sql results to shell