create batch script to import into postgres tables
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
Import Notes
Reference msg id not found: 866581879.1147164.1592317256828.ref@mail.yahoo.com
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
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 successOn 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
Import Notes
Reply to msg id not found: 3625e291-8456-3831-6205-2d73232bcd1e@aklaver.comReference msg id not found: 866581879.1147164.1592317256828.ref@mail.yahoo.com
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 successOn 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 successOn 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 importthem
> 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 psqlfrom
> 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 perfectgentleman
> (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
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?"
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?"
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?"
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
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
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 failedc:\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 successOn 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
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 failedc:\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 successOn 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
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 errorWhat 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;"
pausethe 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
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;"
pausethe 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
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
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 5432This 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
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
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 5432echo select count(*) from tableA; | "C:\Program
Files\PostgreSQL\11\bin\psql" -U PSmasteruser -d PSCIDR -h
hostname.amazonaws.com -p 5432 password=mypasswordall usernames are same password.
thank you so much for all input.
v/r,
**
*Bach-Nga
--
Adrian Klaver
adrian.klaver@aklaver.com
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=mypasswordall usernames are same password.
thank you so much for all input.
v/r,
**
*Bach-Nga
--
Adrian Klaver
adrian.klaver@aklaver.com
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=mypasswordeven -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=mypasswordnone 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 successOn 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 errorOnce 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=mypasswordall 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
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 tablesOn 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=mypasswordPlease 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=mypasswordeven -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=mypasswordnone 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 successOn 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 errorOnce 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
Import Notes
Reply to msg id not found: cmu-lmtpd-567156-1592576241-1@sloti21d1t16Reference msg id not found: cmu-lmtpd-567156-1592576241-1@sloti21d1t16 | Resolved by subject fallback