create batch script to import into postgres tables

Started by Pepe TD Voalmost 6 years ago33 messagesgeneral
Jump to latest
#1Pepe TD Vo
pepevo@yahoo.com

good morning experts,
I nêd to set up a batch script to import multi csv files to import them to Postgres tables.  Each csv files will be named table1_todaydate.csv, table2_todaydate.csv, etc... tablen_todaydate.csv.  Each csv file will import to its table and how do I execute the script to called psql from AWS?  Do I need to create each batch file for import each table?
all export file is store in c:\export\files\
thank you.
Bach-Nga

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

#2Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#1)
Re: create batch script to import into postgres tables

On 6/16/20 7:20 AM, Pepe TD Vo wrote:

good morning experts,

I nêd to set up a batch script to import multi csv files to import them
to Postgres tables.  Each csv files will be named table1_todaydate.csv,
table2_todaydate.csv, etc... tablen_todaydate.csv.  Each csv file will
import to its table and how do I execute the script to called psql from
AWS?  Do I need to create each batch file for import each table?

You have psql installed on your local(Windows?) machine?

Or are you using psql in your AWS instance?

all export file is store in c:\export\files\

thank you.

Bach-Nga

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

--
Adrian Klaver
adrian.klaver@aklaver.com

#3Pepe TD Vo
pepevo@yahoo.com
In reply to: Pepe TD Vo (#1)
Re: create batch script to import into postgres tables

I can run \copy in Linux with individual csv file into the table fine and run import using pgadmin into AWS instance.  I am trying to run \copy all csv files import into its own table in Linux and in AWS instance. If all csv files into one table is fine but each csv for each table.  Should I create one batch job for each imported table?  If each batch file import csv to its table would be fine via \copy table_name(col1, col2, ... coln) from '/path/tablename.csv' delimiter ',' csv header;  right?
Also, the problem is I can't pull/execute psql from window client to pull the psql in aws instance and don't know how to create the batch script for this run.  I tried simple \copy pull from c:\tes.csv and psql is unknown.

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 10:39:45 AM EDT, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 6/16/20 7:30 AM, Pepe TD Vo wrote:
Please post to list also.
Ccing list.

using psql in AWS instance
also psql in Linux.  I can run psql in linux if create a batch file, but
don't know how to pull psql in aws instance if the batch script run in
Window client.  Also, I need help to pull each csv import to its own
table.  Should I create each batch script for each import table?

So the AWS instance and Linux instance are different?

To me the simplest solution would be to push the CSV files to the AWS
instance and work from there. The files will need to be run through a
Postgres command to be imported into a table.

Are you familiar with
COPY(https://www.postgresql.org/docs/12/sql-copy.html) or
\copy(https://www.postgresql.org/docs/12/app-psql.html)?

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 10:25:03 AM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/16/20 7:20 AM, Pepe TD Vo wrote:
  > good morning experts,
  >
  > I nêd to set up a batch script to import multi csv files to import them
  > to Postgres tables.  Each csv files will be named table1_todaydate.csv,
  > table2_todaydate.csv, etc... tablen_todaydate.csv.  Each csv file will
  > import to its table and how do I execute the script to called psql from
  > AWS?  Do I need to create each batch file for import each table?

You have psql installed on your local(Windows?) machine?

Or are you using psql in your AWS instance?

  >
  > all export file is store in c:\export\files\
  >
  > thank you.
  >
  > Bach-Nga
  >
  >
  >
  >
  >
  >
  > **
  > *Bach-Nga
  >
  > *No one in this world is pure and perfect.  If you avoid people for
  > their mistakes you will be alone. So judge less, love, and forgive
  > more.EmojiEmojiEmoji

  > To call him a dog hardly seems to do him justice though in as much as he
  > had four legs, a tail, and barked, I admit he was, to all outward
  > appearances. But to those who knew him well, he was a perfect gentleman
  > (Hermione Gingold)
  >
  > **Live simply **Love generously **Care deeply **Speak kindly.
  > *** Genuinely rich *** Faithful talent *** Sharing success

  >
  >

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#4Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#3)
Re: create batch script to import into postgres tables

On 6/16/20 7:59 AM, Pepe TD Vo wrote:

Just noticed you cross posted to pgsql-admin listed. FYI, That is not a
good practice.

I can run \copy in Linux with individual csv file into the table fine
and run import using pgadmin into AWS instance. I am trying to run \copy
all csv files import into its own table in Linux and in AWS instance. If
all csv files into one table is fine but each csv for each table. Should
I create one batch job for each imported table?  If each batch file
import csv to its table would be fine via \copy table_name(col1, col2,
... coln) from '/path/tablename.csv' delimiter ',' csv header; right?

Yes, you will need to copy each file into its own table.

Also, the problem is I can't pull/execute psql from window client to
pull the psql in aws instance and don't know how to create the batch
script for this run.  I tried simple \copy pull from c:\tes.csv and psql
is unknown.

There is no good/easy way I know of to install just psql on Windows. You
are better off copying the CSV files to the AWS instance.

Do you have PuTTY installed?:

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

If not I would take a look at above link. PuTTY brings SSH to Windows.
The relevant part to this issue is:

https://the.earth.li/~sgtatham/putty/0.73/htmldoc/Chapter5.html#pscp

"PSCP, the PuTTY Secure Copy client, is a tool for transferring files
securely between computers using an SSH connection. "

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 10:39:45 AM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/16/20 7:30 AM, Pepe TD Vo wrote:
Please post to list also.
Ccing list.

using psql in AWS instance
also psql in Linux.  I can run psql in linux if create a batch file, but
don't know how to pull psql in aws instance if the batch script run in
Window client.  Also, I need help to pull each csv import to its own
table.  Should I create each batch script for each import table?

So the AWS instance and Linux instance are different?

To me the simplest solution would be to push the CSV files to the AWS
instance and work from there. The files will need to be run through a
Postgres command to be imported into a table.

Are you familiar with
COPY(https://www.postgresql.org/docs/12/sql-copy.html) or
\copy(https://www.postgresql.org/docs/12/app-psql.html)?

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 10:25:03 AM EDT, Adrian Klaver
<adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>> wrote:

On 6/16/20 7:20 AM, Pepe TD Vo wrote:
  > good morning experts,
  >
  > I nêd to set up a batch script to import multi csv files to import

them

  > to Postgres tables.  Each csv files will be named

table1_todaydate.csv,

  > table2_todaydate.csv, etc... tablen_todaydate.csv.  Each csv file will
  > import to its table and how do I execute the script to called psql

from

  > AWS?  Do I need to create each batch file for import each table?

You have psql installed on your local(Windows?) machine?

Or are you using psql in your AWS instance?

  >
  > all export file is store in c:\export\files\
  >
  > thank you.
  >
  > Bach-Nga
  >
  >
  >
  >
  >
  >
  > **
  > *Bach-Nga
  >
  > *No one in this world is pure and perfect.  If you avoid people for
  > their mistakes you will be alone. So judge less, love, and forgive
  > more.EmojiEmojiEmoji

  > To call him a dog hardly seems to do him justice though in as much

as he

  > had four legs, a tail, and barked, I admit he was, to all outward
  > appearances. But to those who knew him well, he was a perfect

gentleman

  > (Hermione Gingold)
  >
  > **Live simply **Love generously **Care deeply **Speak kindly.
  > *** Genuinely rich *** Faithful talent *** Sharing success

  >
  >

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

<mailto:adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#5Chris Browne
cbbrowne@acm.org
In reply to: Pepe TD Vo (#3)
Re: create batch script to import into postgres tables

On Tue, 16 Jun 2020 at 10:59, Pepe TD Vo <pepevo@yahoo.com> wrote:

I can run \copy in Linux with individual csv file into the table fine and
run import using pgadmin into AWS instance. I am trying to run \copy all
csv files import into its own table in Linux and in AWS instance. If all
csv files into one table is fine but each csv for each table. Should I
create one batch job for each imported table? If each batch file import
csv to its table would be fine via \copy table_name(col1, col2, ... coln)
from '/path/tablename.csv' delimiter ',' csv header; right?

There is no single straightforward answer to that.

Supposing I want a batch to either all be processed, or to all not process,
then I might write a sql file like:

begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;
\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;
commit;

But you may be fine with having a separate SQL script for each table.

There will be conditions where one or the other is more appropriate, and
that will be based on the requirements of the process.

Also, the problem is I can't pull/execute psql from window client to pull

the psql in aws instance and don't know how to create the batch script for
this run. I tried simple \copy pull from c:\tes.csv and psql is unknown.

You cannot run psql without having it installed; there is a Windows
installer for PostgreSQL, so you could use that to get it installed.

Hopefully there is an installer that will just install PostgreSQL client
software (like psql, pg_dump, and notably *not* the database server
software); I don't use WIndows, so I am not too familiar with that.

--
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"

#6Pepe TD Vo
pepevo@yahoo.com
In reply to: Chris Browne (#5)
Re: create batch script to import into postgres tables

Yes, I do have putty installed but can't connect to the aws postgres instance.  Only work for oracle instance.  Only connect postgres instance using pgadmin.
follow the url and the login prompt for username and hung there.
thank you.
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 11:17:21 AM EDT, Christopher Browne <cbbrowne@gmail.com> wrote:

On Tue, 16 Jun 2020 at 10:59, Pepe TD Vo <pepevo@yahoo.com> wrote:

I can run \copy in Linux with individual csv file into the table fine and run import using pgadmin into AWS instance.  I am trying to run \copy all csv files import into its own table in Linux and in AWS instance. If all csv files into one table is fine but each csv for each table.  Should I create one batch job for each imported table?  If each batch file import csv to its table would be fine via \copy table_name(col1, col2, ... coln) from '/path/tablename.csv' delimiter ',' csv header;  right?

There is no single straightforward answer to that.
Supposing I want a batch to either all be processed, or to all not process, then I might write a sql file like:
begin;\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;commit;
But you may be fine with having a separate SQL script for each table.
There will be conditions where one or the other is more appropriate, and that will be based on the requirements of the process.

Also, the problem is I can't pull/execute psql from window client to pull the psql in aws instance and don't know how to create the batch script for this run.  I tried simple \copy pull from c:\tes.csv and psql is unknown.

You cannot run psql without having it installed; there is a Windows installer for PostgreSQL, so you could use that to get it installed.
Hopefully there is an installer that will just install PostgreSQL client software (like psql, pg_dump, and notably *not* the database server software); I don't use WIndows, so I am not too familiar with that.
 --
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"

#7Pepe TD Vo
pepevo@yahoo.com
In reply to: Pepe TD Vo (#6)
Re: create batch script to import into postgres tables

I have a Postgresql client installed and connected.  how can i create a batch script running from the client window?
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 11:42:40 AM EDT, Pepe TD Vo <pepevo@yahoo.com> wrote:

Yes, I do have putty installed but can't connect to the aws postgres instance.  Only work for oracle instance.  Only connect postgres instance using pgadmin.
follow the url and the login prompt for username and hung there.
thank you.
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Tuesday, June 16, 2020, 11:17:21 AM EDT, Christopher Browne <cbbrowne@gmail.com> wrote:

On Tue, 16 Jun 2020 at 10:59, Pepe TD Vo <pepevo@yahoo.com> wrote:

I can run \copy in Linux with individual csv file into the table fine and run import using pgadmin into AWS instance.  I am trying to run \copy all csv files import into its own table in Linux and in AWS instance. If all csv files into one table is fine but each csv for each table.  Should I create one batch job for each imported table?  If each batch file import csv to its table would be fine via \copy table_name(col1, col2, ... coln) from '/path/tablename.csv' delimiter ',' csv header;  right?

There is no single straightforward answer to that.
Supposing I want a batch to either all be processed, or to all not process, then I might write a sql file like:
begin;\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;commit;
But you may be fine with having a separate SQL script for each table.
There will be conditions where one or the other is more appropriate, and that will be based on the requirements of the process.

Also, the problem is I can't pull/execute psql from window client to pull the psql in aws instance and don't know how to create the batch script for this run.  I tried simple \copy pull from c:\tes.csv and psql is unknown.

You cannot run psql without having it installed; there is a Windows installer for PostgreSQL, so you could use that to get it installed.
Hopefully there is an installer that will just install PostgreSQL client software (like psql, pg_dump, and notably *not* the database server software); I don't use WIndows, so I am not too familiar with that.
 --
When confronted by a difficult problem, solve it by reducing it to the
question, "How would the Lone Ranger handle this?"

#8Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#7)
Re: create batch script to import into postgres tables

On 6/18/20 8:20 AM, Pepe TD Vo wrote:

Please don't top post. The preferred style on this list is inline or
bottom posting(https://en.wikipedia.org/wiki/Posting_style).

I have a Postgresql client installed and connected.  how can i create a
batch script running from the client window?

Create a file with commands in it like the example from Christopher
Browne that was posted earlier:

"There is no single straightforward answer to that.

Supposing I want a batch to either all be processed, or to all not process,
then I might write a sql file like:

begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;
\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;
commit;

But you may be fine with having a separate SQL script for each table.

There will be conditions where one or the other is more appropriate, and
that will be based on the requirements of the process."

Then point psql at it:

psql -d some_db -h some_host -U some_user -f the_file

Be aware that \copy is all or nothing. If there is a single failure in
the copying the whole copy will rollback. Given that the one file per
table might be preferable.

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#9Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#8)
Re: create batch script to import into postgres tables

I get this part that separates SQL script for import each table, 
(import.sql)begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
commit;
but when open the psql sql shell script it prompts line by line for localhost, port, db, user, and password.  If I set up a script and let it run it won't connect to the postgresql instance.  I want to know how to execute a batch script connect to the database/instance.   In oracle I created a shell script with all oracle_sid, oracle_home, and read the function/procedure... for psql, especially from window client, I did put psql_home and connect to the instance, it failed

c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U postgres -i import.sql
even I do a simple count
c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U postgres -c "select count(*) from tableA";

none of them is work. Try to learn how to execute its script.
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 12:08:44 PM EDT, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 6/18/20 8:20 AM, Pepe TD Vo wrote:

Please don't top post. The preferred style on this list is inline or
bottom posting(https://en.wikipedia.org/wiki/Posting_style).

I have a Postgresql client installed and connected.  how can i create a
batch script running from the client window?

Create a file with commands in it like the example from Christopher
Browne that was posted earlier:

"There is no single straightforward answer to that.

Supposing I want a batch to either all be processed, or to all not process,
then I might write a sql file like:

begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;
\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;
commit;

But you may be fine with having a separate SQL script for each table.

There will be conditions where one or the other is more appropriate, and
that will be based on the requirements of the process."

Then point psql at it:

psql -d some_db -h some_host -U some_user -f the_file

Be aware that \copy is all or nothing. If there is a single failure in
the copying the whole copy will rollback. Given that the one file per
table might be preferable.

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#10Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#9)
Re: create batch script to import into postgres tables

On 6/18/20 9:40 AM, Pepe TD Vo wrote:

I get this part that separates SQL script for import each table,

(import.sql)
begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
commit;

but when open the psql sql shell script it prompts line by line for
localhost, port, db, user, and password.  If I set up a script and let
it run it won't connect to the postgresql instance.  I want to know how
to execute a batch script connect to the database/instance.
In oracle I created a shell script with all oracle_sid, oracle_home, and
read the function/procedure... for psql, especially from window client,
I did put psql_home and connect to the instance, it failed

c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U
postgres -i import.sql

The above should be -f import.sql. AFAIK there is no -i for psql, so
that should be failing.

even I do a simple count

c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U
postgres -c "select count(*) from tableA";

psql -d production -U postgres -c 'select count(*) from cell_per';
Null display is "NULL".
count
-------
68
(1 row)

psql -d production -U postgres -c 'select count(*) from cell_per'
Null display is "NULL".
count
-------
68

psql -d production -U postgres -c 'select count(*) from cell_per;'
Null display is "NULL".
count
-------
68

none of them is work. Try to learn how to execute its script.

What error messages do you get?

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 12:08:44 PM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/18/20 8:20 AM, Pepe TD Vo wrote:

Please don't top post. The preferred style on this list is inline or
bottom posting(https://en.wikipedia.org/wiki/Posting_style).

I have a Postgresql client installed and connected.  how can i create a
batch script running from the client window?

Create a file with commands in it like the example from Christopher
Browne that was posted earlier:

"There is no single straightforward answer to that.

Supposing I want a batch to either all be processed, or to all not process,
then I might write a sql file like:

begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;
\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;
commit;

But you may be fine with having a separate SQL script for each table.

There will be conditions where one or the other is more appropriate, and
that will be based on the requirements of the process."

Then point psql at it:

psql -d some_db -h some_host -U some_user -f the_file

Be aware that \copy is all or nothing. If there is a single failure in
the copying the whole copy will rollback. Given that the one file per
table might be preferable.

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#11Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#10)
Re: create batch script to import into postgres tables

psql -d production  -U postgres -c 'select count(*) from cell_per';

Null display is "NULL".
  count
-------
    68
(1 row)

you can do this once you are in psql. But if you are running from shell script, it will be an error

What error messages do you get?

my shell script is:@echo off C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser  -d PSCIDR -h hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause
the error I have is 'C:\Program' is not recognized as an internal or external command, operable program or batch file.
I even surround the path in quotes because of space.@echo off cmd /c ""C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause
error is: 'C:\Program Files\PostgreSQL\11\bin\psql: illegal option -- u
when I put -P Password123 (or fully qualified password=Password123)
it gives me another error "pset: unknow option: Password123psql: could not set printing parameter "Password123"
I can connect from psql shell fine when it prompt hostname, username (but connect to postgres not to PSmasteruser, PSmasteruser username set up for aws maintenance postgres database, someone did, not me and the password is same on both).  Once I'm in psql and I can change to PSCIDR instance fine and run select count(*) from tableA;

Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 03:06:39 PM EDT, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 6/18/20 9:40 AM, Pepe TD Vo wrote:

I get this part that separates SQL script for import each table,

(import.sql)
begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
commit;

but when open the psql sql shell script it prompts line by line for
localhost, port, db, user, and password.  If I set up a script and let
it run it won't connect to the postgresql instance.  I want to know how
to execute a batch script connect to the database/instance.
In oracle I created a shell script with all oracle_sid, oracle_home, and
read the function/procedure... for psql, especially from window client,
I did put psql_home and connect to the instance, it failed

c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U
postgres -i import.sql

The above should be -f import.sql. AFAIK there is no -i for psql, so
that should be failing.

even I do a simple count

c:\Progra~1\PostgreSQL\11\bin\psql -d PSCIDR -h localhost -p 5432 -U
postgres -c "select count(*) from tableA";

psql -d production  -U postgres -c 'select count(*) from cell_per';
Null display is "NULL".
  count
-------
    68
(1 row)

psql -d production  -U postgres -c 'select count(*) from cell_per'
Null display is "NULL".
  count
-------
    68

psql -d production  -U postgres -c 'select count(*) from cell_per;'
Null display is "NULL".
  count
-------
    68

none of them is work. Try to learn how to execute its script.

What error messages do you get?

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 12:08:44 PM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/18/20 8:20 AM, Pepe TD Vo wrote:

Please don't top post. The preferred style on this list is inline or
bottom posting(https://en.wikipedia.org/wiki/Posting_style).

  > I have a Postgresql client installed and connected.  how can i create a
  > batch script running from the client window?

Create a file with commands in it like the example from Christopher
Browne that was posted earlier:

"There is no single straightforward answer to that.

Supposing I want a batch to either all be processed, or to all not process,
then I might write a sql file like:

begin;
\copy table_1 (c1, c2, c3) from '/path/tabledata1.csv' csv header;
\copy table_2 (c1, c2, c3) from '/path/tabledata2.csv' csv header;
\copy table_3 (c1, c2, c3) from '/path/tabledata3.csv' csv header;
commit;

But you may be fine with having a separate SQL script for each table.

There will be conditions where one or the other is more appropriate, and
that will be based on the requirements of the process."

Then point psql at it:

psql -d some_db -h some_host -U some_user -f the_file

Be aware that \copy is all or nothing. If there is a single failure in
the copying the whole copy will rollback. Given that the one file per
table might be preferable.

  >
  > **
  > *Bach-Nga

  >

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#12Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#11)
Re: create batch script to import into postgres tables

On 6/18/20 12:54 PM, Pepe TD Vo wrote:

psql -d production  -U postgres -c 'select count(*) from cell_per';

Null display is "NULL".
  count
-------
    68
(1 row)

you can do this once you are in psql. But if you are running from shell
script, it will be an error

What error messages do you get?

my shell script is:
@echo off
C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser  -d PSCIDR -h
hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause

the error I have is 'C:\Program' is not recognized as an internal or
external command, operable program or batch file.

I even surround the path in quotes because of space.
@echo off
cmd /c ""C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d
PSCIDR -h hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause

Not sure how quoting works in Windows shell scripts, but pretty sure the
above has unbalanced quotes.

error is: 'C:\Program Files\PostgreSQL\11\bin\psql: illegal option -- u

when I put -P Password123 (or fully qualified password=Password123)

I would recommend spending some time here:

https://www.postgresql.org/docs/12/app-psql.html

to see what the options are. Hint: -P is not the option for password.

it gives me another error "pset: unknow option: Password123
psql: could not set printing parameter "Password123"

It is the option for pset as the error message says.

I can connect from psql shell fine when it prompt hostname, username
(but connect to postgres not to PSmasteruser, PSmasteruser username set
up for aws maintenance postgres database, someone did, not me and the
password is same on both).  Once I'm in psql and I can change to PSCIDR
instance fine and run select count(*) from tableA;

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#13Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#12)
Re: create batch script to import into postgres tables

thank you for the link.  I did try it and it's still errorecho 'SELECT count(*) FROM tableA;' | C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432
I can run 'psql -u postgres -d PSCIDR -p 5432' (on Linux server, still learning how to run it from psql shell in Window) fine from psql prompt.  Just still wonder how to connect directly to the instance PSCIDR from scripting in both aws and linux.  Otherwise manually run using pgAdmin.
v/r,
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 07:00:37 PM EDT, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 6/18/20 12:54 PM, Pepe TD Vo wrote:

psql -d production  -U postgres -c 'select count(*) from cell_per';

Null display is "NULL".
    count
-------
      68
(1 row)

you can do this once you are in psql. But if you are running from shell
script, it will be an error

  >>What error messages do you get?

my shell script is:
@echo off
C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser  -d PSCIDR -h
hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause

the error I have is 'C:\Program' is not recognized as an internal or
external command, operable program or batch file.

I even surround the path in quotes because of space.
@echo off
cmd /c ""C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d
PSCIDR -h hostname.amazonaws.com -p 5432 -c "select count(*) from tableA;"
pause

Not sure how quoting works in Windows shell scripts, but pretty sure the
above has unbalanced quotes.

error is: 'C:\Program Files\PostgreSQL\11\bin\psql: illegal option -- u

when I put -P Password123 (or fully qualified password=Password123)

I would recommend spending some time here:

https://www.postgresql.org/docs/12/app-psql.html

to see what the options are. Hint: -P is not the option for password.

it gives me another error "pset: unknow option: Password123
psql: could not set printing parameter "Password123"

It is the option for pset as the error message says.

I can connect from psql shell fine when it prompt hostname, username
(but connect to postgres not to PSmasteruser, PSmasteruser username set
up for aws maintenance postgres database, someone did, not me and the
password is same on both).  Once I'm in psql and I can change to PSCIDR
instance fine and run select count(*) from tableA;

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#14Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#13)
Re: create batch script to import into postgres tables

On 6/18/20 4:37 PM, Pepe TD Vo wrote:

thank you for the link.  I did try it and it's still error

echo 'SELECT count(*) FROM tableA;' |
C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432

This is getting old. The error is?

I can run 'psql -u postgres -d PSCIDR -p 5432' (on Linux server, still
learning how to run it from psql shell in Window) fine from psql
prompt.  Just still wonder how to connect directly to the instance
PSCIDR from scripting in both aws and linux.  Otherwise manually run
using pgAdmin.

v/r,

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#15Noname
cgerard999@gmail.com
In reply to: Adrian Klaver (#14)
Re: create batch script to import into postgres tables

Remove the quotes around echo
echo select count(*) from web_20200619; | "C:\Program Files\postgresql\11\bin\psql" -d *** -h *** -U ***
or, store your query into a text file and use
psql -f query.sql

Sent from my mobile phone

Show quoted text

Le 19 juin 2020 à 02:00, Adrian Klaver <adrian.klaver@aklaver.com> a écrit :

On 6/18/20 4:37 PM, Pepe TD Vo wrote:

thank you for the link. I did try it and it's still error
echo 'SELECT count(*) FROM tableA;' |
C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432

This is getting old. The error is?

I can run 'psql -u postgres -d PSCIDR -p 5432' (on Linux server, still learning how to run it from psql shell in Window) fine from psql prompt. Just still wonder how to connect directly to the instance PSCIDR from scripting in both aws and linux. Otherwise manually run using pgAdmin.
v/r,
**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#16Pepe TD Vo
pepevo@yahoo.com
In reply to: Noname (#15)
Re: create batch script to import into postgres tables

thank you,   I tried that too, remove the quote around the echo and it prompt for password, as I mentioned no matter I put -P mypassword no matter what I spell out password=mypassword still argument error

echo select count(*) from tableA; | "C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432  

 echo select count(*) from tableA; | "C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432 password=mypassword

all usernames are same password.
thank you so much for all input.
v/r,
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Thursday, June 18, 2020, 09:25:41 PM EDT, <cgerard999@gmail.com> wrote:

Remove the quotes around echo

echo select count(*) from web_20200619; | "C:\Program Files\postgresql\11\bin\psql" -d *** -h *** -U ***

or, store your query into a text file and use 

psql -f query.sql

Sent from my mobile phone

Le 19 juin 2020 à 02:00, Adrian Klaver <adrian.klaver@aklaver.com> a écrit :

On 6/18/20 4:37 PM, Pepe TD Vo wrote:

thank you for the link.  I did try it and it's still error

echo 'SELECT count(*) FROM tableA;' |

C:\Program Files\PostgreSQL\11\bin\psql -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432

This is getting old. The error is?

I can run 'psql -u postgres -d PSCIDR -p 5432' (on Linux server, still learning how to run it from psql shell in Window) fine from psql prompt.  Just still wonder how to connect directly to the instance PSCIDR from scripting in both aws and linux.  Otherwise manually run using pgAdmin.

v/r,

**

*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#17Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#16)
Re: create batch script to import into postgres tables

On 6/19/20 4:12 AM, Pepe TD Vo wrote:

thank you,   I tried that too, remove the quote around the echo and it
prompt for password, as I mentioned no matter I put -P mypassword no
matter what I spell out password=mypassword still argument error

Once again -P has nothing to do with password. Also --password does not
take an argument, it is meant to be used as is. The purpose is to force
a password prompt. This is all spelled out here:

https://www.postgresql.org/docs/12/app-psql.html

Also spelled out in above is:

" It is also convenient to have a ~/.pgpass file to avoid regularly
having to type in passwords. See Section 33.15 for more information."

And Section 33.15:

https://www.postgresql.org/docs/12/libpq-pgpass.html

"The file .pgpass in a user's home directory can contain passwords to be
used if the connection requires a password (and no password has been
specified otherwise). ..."

Read more at link for how to do that.

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 password=mypassword

all usernames are same password.

thank you so much for all input.

v/r,

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#18Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#17)
Re: create batch script to import into postgres tables

Thank you sir and I am sorry for the typo not having "--" on password.  I did spelling out with --password=mypassword

 echo select count(*) from tableA; | "C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432 --password=mypassword

even -W for password>> echo select count(*) from tableA; | "C:\Program Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h hostname.amazonaws.com -p 5432 -W=mypassword

none of them work, still prompt me for password to type in.  I will look into the pgpassfile which I know it will fail again.

very respectfully,
Bach-Nga

No one in this world is pure and perfect.  If you avoid people for their mistakes you will be alone. So judge less, love, and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success

On Friday, June 19, 2020, 09:19:35 AM EDT, Adrian Klaver <adrian.klaver@aklaver.com> wrote:

On 6/19/20 4:12 AM, Pepe TD Vo wrote:

thank you,   I tried that too, remove the quote around the echo and it
prompt for password, as I mentioned no matter I put -P mypassword no
matter what I spell out password=mypassword still argument error

Once again -P has nothing to do with password. Also --password does not
take an argument, it is meant to be used as is. The purpose is to force
a password prompt. This is all spelled out here:

https://www.postgresql.org/docs/12/app-psql.html

Also spelled out in above is:

" It is also convenient to have a ~/.pgpass file to avoid regularly
having to type in passwords. See Section 33.15 for more information."

And Section 33.15:

https://www.postgresql.org/docs/12/libpq-pgpass.html

"The file .pgpass in a user's home directory can contain passwords to be
used if the connection requires a password (and no password has been
specified otherwise).  ..."

Read more at link for how to do that.

  >>echo select count(*) from tableA; | "C:\Program
Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432

  >> echo select count(*) from tableA; | "C:\Program
Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 password=mypassword

all usernames are same password.

thank you so much for all input.

v/r,

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com

#19Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#18)
Re: create batch script to import into postgres tables

On 6/19/20 6:53 AM, Pepe TD Vo wrote:

Thank you sir and I am sorry for the typo not having "--" on password.
I did spelling out with --password=mypassword

Please go back and read my post again.

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 --password=mypassword

even -W for password

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 -W=mypassword

none of them work, still prompt me for password to type in.  I will look
into the pgpassfile which I know it will fail again.

very respectfully,

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Friday, June 19, 2020, 09:19:35 AM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/19/20 4:12 AM, Pepe TD Vo wrote:

thank you,   I tried that too, remove the quote around the echo and it
prompt for password, as I mentioned no matter I put -P mypassword no
matter what I spell out password=mypassword still argument error

Once again -P has nothing to do with password. Also --password does not
take an argument, it is meant to be used as is. The purpose is to force
a password prompt. This is all spelled out here:

https://www.postgresql.org/docs/12/app-psql.html

Also spelled out in above is:

" It is also convenient to have a ~/.pgpass file to avoid regularly
having to type in passwords. See Section 33.15 for more information."

And Section 33.15:

https://www.postgresql.org/docs/12/libpq-pgpass.html

"The file .pgpass in a user's home directory can contain passwords to be
used if the connection requires a password (and no password has been
specified otherwise).  ..."

Read more at link for how to do that.

  >>echo select count(*) from tableA; | "C:\Program
Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432

  >> echo select count(*) from tableA; | "C:\Program
Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 password=mypassword

all usernames are same password.

thank you so much for all input.

v/r,

**
*Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

#20Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Adrian Klaver (#19)
Re: create batch script to import into postgres tables

On 6/19/20 7:17 AM, pepevo wrote:

I understand your post about "password does not take an argument, it is
meant to be used as is. The purpose is to force a password prompt." When
I used -W and --password=.  That's what I said I will try pgpassfile.
Thought it like mysq/oracle can indicate out without creating password
file.

If you want to expose your password in the script file then:

https://www.postgresql.org/docs/12/app-psql.html

Usage
Connecting to a Database

"An alternative way to specify connection parameters is in a conninfo
string or a URI, which is used instead of a database name. This
mechanism give you very wide control over the connection. For example:

$ psql "service=myservice sslmode=require"
$ psql postgresql://dbmaster:5433/mydb?sslmode=require

This way you can also use LDAP for connection parameter lookup as
described in Section 33.17. See Section 33.1.2 for more information on
all the available connection options."

So:

psql
postgresql://PSmasteruser:mypassword@hostname.amazonaws.com:5432/PSCIDR

or

psql 'dbname=PSCIDR user=PSmasteruser host=hostname.amazonaws.com port=
5432 password=mypassword '

Thank you again.

Bach-Nga

Sent from my Metro By T-Mobile 4G LTE Android Device

-------- Original message --------
From: Adrian Klaver <adrian.klaver@aklaver.com>
Date: 6/19/20 09:58 (GMT-05:00)
To: Pepe TD Vo <pepevo@yahoo.com>, cgerard999@gmail.com
Cc: Christopher Browne <cbbrowne@gmail.com>, Pgsql-admin
<pgsql-admin@postgresql.org>, Pgsql-general <pgsql-general@postgresql.org>
Subject: Re: create batch script to import into postgres tables

On 6/19/20 6:53 AM, Pepe TD Vo wrote:

Thank you sir and I am sorry for the typo not having "--" on password.
I did spelling out with --password=mypassword

Please go back and read my post again.

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 --password=mypassword

even -W for password

echo select count(*) from tableA; | "C:\Program

Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 -W=mypassword

none of them work, still prompt me for password to type in.  I will look
into the pgpassfile which I know it will fail again.

very respectfully,

**
*Bach-Nga

*No one in this world is pure and perfect.  If you avoid people for
their mistakes you will be alone. So judge less, love, and forgive
more.EmojiEmojiEmoji
To call him a dog hardly seems to do him justice though in as much as he
had four legs, a tail, and barked, I admit he was, to all outward
appearances. But to those who knew him well, he was a perfect gentleman
(Hermione Gingold)

**Live simply **Love generously **Care deeply **Speak kindly.
*** Genuinely rich *** Faithful talent *** Sharing success

On Friday, June 19, 2020, 09:19:35 AM EDT, Adrian Klaver
<adrian.klaver@aklaver.com> wrote:

On 6/19/20 4:12 AM, Pepe TD Vo wrote:
  > thank you,   I tried that too, remove the quote around the echo and it
  > prompt for password, as I mentioned no matter I put -P mypassword no
  > matter what I spell out password=mypassword still argument error

Once again -P has nothing to do with password. Also --password does not
take an argument, it is meant to be used as is. The purpose is to force
a password prompt. This is all spelled out here:

https://www.postgresql.org/docs/12/app-psql.html

Also spelled out in above is:

" It is also convenient to have a ~/.pgpass file to avoid regularly
having to type in passwords. See Section 33.15 for more information."

And Section 33.15:

https://www.postgresql.org/docs/12/libpq-pgpass.html

"The file .pgpass in a user's home directory can contain passwords to be
used if the connection requires a password (and no password has been
specified otherwise).  ..."

Read more at link for how to do that.

  >
  >  >>echo select count(*) from tableA; | "C:\Program
  > Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
  > hostname.amazonaws.com -p 5432
  >
  >  >> echo select count(*) from tableA; | "C:\Program
  > Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
  > hostname.amazonaws.com -p 5432 password=mypassword
  >
  > all usernames are same password.
  >
  > thank you so much for all input.
  >
  > v/r,
  >
  > **
  > *Bach-Nga

--
Adrian Klaver
adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>

--
Adrian Klaver
adrian.klaver@aklaver.com

--
Adrian Klaver
adrian.klaver@aklaver.com

#21David G. Johnston
david.g.johnston@gmail.com
In reply to: Adrian Klaver (#19)
#22David G. Johnston
david.g.johnston@gmail.com
In reply to: Adrian Klaver (#20)
#23Adrian Klaver
adrian.klaver@aklaver.com
In reply to: David G. Johnston (#21)
#24Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#23)
#25Noname
cgerard999@gmail.com
In reply to: Pepe TD Vo (#24)
#26Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Noname (#25)
#27Pepe TD Vo
pepevo@yahoo.com
In reply to: Adrian Klaver (#26)
#28Rob Sargent
robjsargent@gmail.com
In reply to: Pepe TD Vo (#27)
#29Adrian Klaver
adrian.klaver@aklaver.com
In reply to: Pepe TD Vo (#27)
#30David G. Johnston
david.g.johnston@gmail.com
In reply to: Adrian Klaver (#29)
#31David G. Johnston
david.g.johnston@gmail.com
In reply to: David G. Johnston (#30)
#32Adrian Klaver
adrian.klaver@aklaver.com
In reply to: David G. Johnston (#31)
#33Shaozhong SHI
shishaozhong@gmail.com
In reply to: David G. Johnston (#31)