Обсуждение: SQL statement form shell ?

Поиск
Список
Период
Сортировка

SQL statement form shell ?

От
czezz
Дата:
Im trying to execute simple query in shell.
This query works OK in PSQL client:
Server4=# SELECT * FROM foo2;

However, for some reason I cannot execute it in shell. I try it like following:

-bash-4.1$ psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;"
ERROR:  relation "foo2" does not exist
LINE 1: SELECT * FROM foo2;
                      ^

Any ideas what Im doing wrong ?

BR,
czezz



Re: SQL statement form shell ?

От
Raghavendra
Дата:
Is the database name correct ? 
In your OK execution, database looks to be "Server4" and in other execution its "fm_db_Server4".


---
Regards,
Raghavendra
EnterpriseDB Corporation


On Wed, Aug 27, 2014 at 8:34 PM, czezz <czezz@o2.pl> wrote:
Im trying to execute simple query in shell.
This query works OK in PSQL client:
Server4=# SELECT * FROM foo2;

However, for some reason I cannot execute it in shell. I try it like following:

-bash-4.1$ psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;"
ERROR:  relation "foo2" does not exist
LINE 1: SELECT * FROM foo2;
                      ^

Any ideas what Im doing wrong ?

BR,
czezz


--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin

Re: SQL statement form shell ?

От
czezz
Дата:
Copy/Paste error. DB name should be: fm_db_Server4



Dnia 27 sierpnia 2014 17:13 Raghavendra <raghavendra.rao@enterprisedb.com> napisał(a):

fm_db_Server4


Re: SQL statement form shell ?

От
Scott Whitney
Дата:
There are a few things I would check.

a) psql -p 5472 -d fm_db_Server4
b) SELECT * from foo2;
c) Do those _2_ statements work separately? That should prove that you're talking to the exact same connection/host/port you expect.
d) psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;

So, step a&b succeed, but step d fails?

d) psql -p 5472 -d fm_db_Server4
e) SELECT * from "foo2";

If this doesn't work, "foo2," is not a valid relation. It's case-sensitive or some such. Once you can make the table name work within " " marks, THEN try from the command prompt like:

f) psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM \"foo2\" ; "



Im trying to execute simple query in shell.
This query works OK in PSQL client:
Server4=# SELECT * FROM foo2;

However, for some reason I cannot execute it in shell. I try it like following:

-bash-4.1$ psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;"
ERROR:  relation "foo2" does not exist
LINE 1: SELECT * FROM foo2;
                      ^

Any ideas what Im doing wrong ?

BR,
czezz


--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin




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

p 512.834.8888 
f 512-834-8858 

Do you receive our promotional emails? You can subscribe or unsubscribe to those emails here


Re: SQL statement form shell ?

От
Raghavendra
Дата:

On Wed, Aug 27, 2014 at 8:53 PM, czezz <czezz@o2.pl> wrote:
Copy/Paste error. DB name should be: fm_db_Server4


​Did you set
PGOPTIONS environment variable for that terminal for any specific schema which do not contain the table "foo"
​. Then you might hit the error 

-bash-4.1$ export PGOPTIONS="-c search_path=tester"
-bash-4.1$ psql -p 5432 -d postgres -c "SELECT * FROM foo;"
ERROR:  relation "foo" does not exist
LINE 1: SELECT * FROM foo;
                      ^
​---
Regards,
Raghavendra
EnterpriseDB Corporation

 

Dnia 27 sierpnia 2014 17:13 Raghavendra <raghavendra.rao@enterprisedb.com> napisał(a):

fm_db_Server4



Re: SQL statement form shell ?

От
Scott Whitney
Дата:
Also, throughout this thread, you have given us 2 separate ports: 5472 and 5432 (default).

In _this_ example, you set the database to "postgres," not to "Server4," as well.
Then there's that whole "foo," versus "foo2," thing going on...

There are a lot of differences in what you have sent over the course of this thread.

I would back up, take a deep breath, and start over.

1) Connect to your database something like this:
psql ___name of database___

2) SELECT * from "foo2";

3) Does that work? Once you make that work, proceed to test from the command line like this:

psql ___name of database__ -c "SELECT * from \"foo2\" ; "

If you make 1 and 2 work, 3 should work. BUT ALL OF THE OPTIONS HAVE TO BE THE SAME.
You cannot select * from foo in steps 1 and 2 and select * from foo2 in step 3.
You cannot use port 5472 in step 1/2 and 5432 in step 3.
You cannot connect to the db postgres in steps 1/2 and another db in step 3.

That invalidates your process.



On Wed, Aug 27, 2014 at 8:53 PM, czezz <czezz@o2.pl> wrote:
Copy/Paste error. DB name should be: fm_db_Server4


​Did you set
PGOPTIONS environment variable for that terminal for any specific schema which do not contain the table "foo"
​. Then you might hit the error 

-bash-4.1$ export PGOPTIONS="-c search_path=tester"
-bash-4.1$ psql -p 5432 -d postgres -c "SELECT * FROM foo;"
ERROR:  relation "foo" does not exist
LINE 1: SELECT * FROM foo;
                      ^
​---
Regards,
Raghavendra
EnterpriseDB Corporation

 

Dnia 27 sierpnia 2014 17:13 Raghavendra <raghavendra.rao@enterprisedb.com> napisał(a):

fm_db_Server4







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

p 512.834.8888 
f 512-834-8858 

Do you receive our promotional emails? You can subscribe or unsubscribe to those emails here


Re: SQL statement form shell ?

От
czezz
Дата:
Hi,
I think I got it.
It seems that I need to indicate specific user name and only then the query works.
-bash-4.1$ psql -p 5472 -d fm_db_Server4 -U msuper -c "SELECT * FROM foo2;"

Im new to postgresql but I guess -U (user) also somehow defines tablespace where specific table is created.
Anyway, thank you all for your help and answers.

Cheers,
czezz


Dnia 27 sierpnia 2014 17:30 Scott Whitney <scott@journyx.com> napisał(a):

There are a few things I would check.
 
a) psql -p 5472 -d fm_db_Server4
b) SELECT * from foo2;
c) Do those _2_ statements work separately? That should prove that you're talking to the exact same connection/host/port you expect.
d) psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;
 
So, step a&b succeed, but step d fails?
 
d) psql -p 5472 -d fm_db_Server4
e) SELECT * from "foo2";
 
If this doesn't work, "foo2," is not a valid relation. It's case-sensitive or some such. Once you can make the table name work within " " marks, THEN try from the command prompt like:
 
f) psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM \"foo2\" ; "
 
 

Im trying to execute simple query in shell.
This query works OK in PSQL client:
Server4=# SELECT * FROM foo2;
 
However, for some reason I cannot execute it in shell. I try it like following:
 
-bash-4.1$ psql -p 5472 -d fm_db_Server4 -c "SELECT * FROM foo2;"
ERROR:  relation "foo2" does not exist
LINE 1: SELECT * FROM foo2;
                      ^
 
Any ideas what Im doing wrong ?
 
BR,
czezz
 

--
Sent via pgsql-admin mailing list (pgsql-admin@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-admin
 


 
Journyx, Inc.
7600 Burnet Road #300
Austin, TX 78757
www.journyx.com
 
p 512.834.8888 
f 512-834-8858 
 
Do you receive our promotional emails? You can subscribe or unsubscribe to those emails here