Shell 使用psql命令行时引用的字符串解释出现问题
假设PostgreSQL 10数据库中的一个表名为“Measurement”,其中有一列名为文本类型的“Name” 我想列出所有具有特定名称的记录,因此sql语句:Shell 使用psql命令行时引用的字符串解释出现问题,shell,ubuntu,command-line,psql,postgresql-10,Shell,Ubuntu,Command Line,Psql,Postgresql 10,假设PostgreSQL 10数据库中的一个表名为“Measurement”,其中有一列名为文本类型的“Name” 我想列出所有具有特定名称的记录,因此sql语句: SELECT * FROM public."Measurement" WHERE "Measurement"."Name" = 'nazwa1'; 在pgAdmin SQL编辑器中工作良好 我想问服务器关于同样的问题,但在Ubuntu上,psql在命令行中工作,类似这样: psql --host 127.0.0.1 --dbnam
SELECT * FROM public."Measurement" WHERE "Measurement"."Name" = 'nazwa1';
在pgAdmin SQL编辑器中工作良好
我想问服务器关于同样的问题,但在Ubuntu上,psql在命令行中工作,类似这样:
psql --host 127.0.0.1 --dbname BazaDanych --username postgres --port 5432 --echo-all --no-align --command 'SELECT * FROM public."Measurement" WHERE "Measurement"."Name" = 'nazwa1';' --log-file /home/user/wynik.log -o /home/user/dane.csv -P fieldsep=',' -P footer='off'
由于shell无法识别该语句中的单引号,并且导致问题报告为“column not Existence”,因此该语句不起作用,如下所示:
public."Measurement" WHERE "Measurement"."Name" = nazwa1
“nazwa1”字符串不解释为要与记录进行比较的值,而是解释为列名
我尝试过很多方法,比如:\'、双引号和其他许多方法,但都没有成功的结果
如何解决这个问题?有人能纠正我的命令吗?幸运的是,我找到了 需要两个步骤:
psql --host 127.0.0.1 --dbname BazaDanych --username postgres --port 5432 --echo-all --no-align --command "SELECT * FROM public.\"Measurement\" WHERE \"Measurement\".\"Name\" = 'nazwa1';" --log-file /home/user/wynik.log -o /home/user/dane.csv -P fieldsep=',' -P footer='off'
这可能对某人有帮助。如果没有,管理员们,请删除我的帖子。幸运的是,我找到了它 需要两个步骤:
psql --host 127.0.0.1 --dbname BazaDanych --username postgres --port 5432 --echo-all --no-align --command "SELECT * FROM public.\"Measurement\" WHERE \"Measurement\".\"Name\" = 'nazwa1';" --log-file /home/user/wynik.log -o /home/user/dane.csv -P fieldsep=',' -P footer='off'
这可能对某人有帮助。如果没有,管理员,请删除我的帖子