Thread: Passing parameters

Passing parameters

From
"Ferrell, Denise D CTR NSWCDD, H11"
Date:
Hi All,

Using PostgreSQL v9.3 on Linux Red Hat...

I've got a script that I'm running from the Linux command prompt that I need to pass 2 parameter's into the psql script
withoutusing the VI Editor.  Is there an easy way to accomplish this? 

psql <database> -f <scriptname> -l <log_file>



Thank you in advance.
Denise

Attachment

Re: Passing parameters

From
Stephen Frost
Date:
Hi Denise!

* Ferrell, Denise D CTR NSWCDD, H11 (denise.ferrell.ctr@navy.mil) wrote:
> Using PostgreSQL v9.3 on Linux Red Hat...
>
> I've got a script that I'm running from the Linux command prompt that I need to pass 2 parameter's into the psql
scriptwithout using the VI Editor.  Is there an easy way to accomplish this? 
>
> psql <database> -f <scriptname> -l <log_file>

It really depends on how you want to use the variables in the script.

psql has a '-v' option which you can use to set variables that can be
used with the ':varname' syntax inside of the script, for example:

psql -v table=abc -f script.sql

Inside of script.sql you can then have ':table', like so:

select * from :table;

and that ':table' will be replaced by 'abc' when psql is run with the
'-v table=abc' parameter.

Hope that helps!

Thanks!

Stephen

Attachment

Re: Passing parameters

From
Scott Whitney
Date:
What's wrong with doing it like this, for example?

#!/bin/bash
user=$1
database=$2
table=$3
myfield=$4
logfile=$5
mysql="select $4 from $3;"
psql -U $user $database -c "mysql" -l "$5"




Then:
/tmp/myscript postgres mydb mytable myfield /tmp/mylog



________________________________________
From: pgsql-admin-owner@postgresql.org <pgsql-admin-owner@postgresql.org> on behalf of Ferrell, Denise D CTR NSWCDD,
H11<denise.ferrell.ctr@navy.mil> 
Sent: Tuesday, March 22, 2016 9:44 AM
To: pgsql-admin@postgresql.org
Subject: [ADMIN] Passing parameters

Hi All,

Using PostgreSQL v9.3 on Linux Red Hat...

I've got a script that I'm running from the Linux command prompt that I need to pass 2 parameter's into the psql script
withoutusing the VI Editor.  Is there an easy way to accomplish this? 

psql <database> -f <scriptname> -l <log_file>



Thank you in advance.
Denise


Journyx, Inc.
7600 Burnet Road #300
Austin, TX 78757
www.journyx.com

p 512.834.8888
f 512-834-8858

Do you receive our promotional emails? You can subscribe or unsubscribe to those emails at
http://go.journyx.com/emailPreference/e/4932/714/


Re: Passing parameters

From
John DeSoi
Date:
> On Mar 22, 2016, at 9:44 AM, Ferrell, Denise D CTR NSWCDD, H11 <denise.ferrell.ctr@navy.mil> wrote:
>
> I've got a script that I'm running from the Linux command prompt that I need to pass 2 parameter's into the psql
scriptwithout using the VI Editor.  Is there an easy way to accomplish this? 
>
> psql <database> -f <scriptname> -l <log_file>

See the psql command line variable options (-v, --set, --variable).

http://www.postgresql.org/docs/9.5/static/app-psql.html#APP-PSQL-VARIABLES

John DeSoi, Ph.D.