You are not logged in.

Announcement

*** NOTICE: forum.openstreetmap.org is being retired. Please request a category for your community in the new ones as soon as possible using this process, which will allow you to propose your community moderators.
Please create new topics on the new site at community.openstreetmap.org. We expect the migration of data will take a few weeks, you can follow its progress here.***

#1 2013-08-02 04:56:12

Lübeck
Member
Registered: 2009-02-17
Posts: 2,874

Frage zur Postgresql-Syntax

HI !

ich wollte Daten einer Tabelle zuweisen und habe folgenden Ausdruck:

UPDATE nodes SET dogbags='yes' WHERE tags@>'vending=excrement_bags';

bekomme aber die Meldung:

FEHLER:  Syntax error near 'e' at position 8
LINE 1: UPDATE nodes SET dogbags='yes' WHERE tags@>'vending=excremen...
                                                   ^

********** Fehler **********

FEHLER: Syntax error near 'e' at position 8
SQL Status:XX000
Zeichen:44

Kann mir einer sagen was da falsch ist ? dogbags als Tabelle gibt es !

Gruß Jan :-)


Redmi Note 9 Pro  mit Android 11, Tablet Android 8.1, PC: Win10

Offline

#2 2013-08-02 05:56:38

viw
Member
Registered: 2010-05-15
Posts: 2,623

Re: Frage zur Postgresql-Syntax

Schaue mal in der Definition um welchen Typ es sich bei dem Feld handelt. Die Fehlermeldung deutet darauf hin das yes kein zu lässiger Wert ist. vielleicht ist es true false oder 0 1 oder yes no ohne Anführungszeichen

Offline

#3 2013-08-02 06:20:29

Lübeck
Member
Registered: 2009-02-17
Posts: 2,874

Re: Frage zur Postgresql-Syntax

Hi !

guter Hinweis - hatte Text genommen! da das YES steht doch in Hochkomma !

Gruß Jan :-)


Redmi Note 9 Pro  mit Android 11, Tablet Android 8.1, PC: Win10

Offline

#4 2013-08-02 07:23:49

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Frage zur Postgresql-Syntax

Bei Deiner Art, Code als Zitat wiederzugeben landet der Fehlermeldungs-Pfeil auf meinem Monitor irgendwo bei dogbags='yes'. In echt dürfte er deutlich weiter hinten stehen...
Probierst doch mal mit tags@>'vending=>excrement_bags'.

osm=> select tags from osm_point where tags@>'vending=excrement_bags' limit 5;
FEHLER:  Syntax error near 'e' at position 8
LINE 1: select tags from osm_point where tags@>'vending=excrement_ba...
                                               ^
osm=> select tags from osm_point where tags@>'vending=>excrement_bags' limit 5;
                                                    tags
------------------------------------------------------------------------------------------------------------
 "ref"=>"W6", "amenity"=>"vending_machine", "vending"=>"excrement_bags", "operator"=>"Stadt Augsburg - AWS"
 "amenity"=>"vending_machine", "vending"=>"excrement_bags", "payment:none"=>"yes"
 "amenity"=>"vending_machine", "vending"=>"excrement_bags", "payment:none"=>"yes"
 "waste"=>"excrements", "amenity"=>"vending_machine", "vending"=>"excrement_bags"
 "vending"=>"excrement_bags"
(5 rows)

Grüße, Max

Last edited by maxbe (2013-08-02 07:25:28)

Offline

#5 2013-08-02 08:08:17

Lübeck
Member
Registered: 2009-02-17
Posts: 2,874

Re: Frage zur Postgresql-Syntax

hi !

ok - werde mal nächste mal darauf achten.

Habe das im Zug gerade auch nochmal ausprobiert und mit

UPDATE nodes SET dogbags='yes' WHERE tags@> 'vending=>excrement_bags';

hat es funktioniert.

Hatte mal nach tags und update und postgresql über das smartphone versucht einen Hinweis zu bekommen.

Danke für Deine Hilfe.

Habe dann noch eine Frage die ich mir noch nicht ganz zusammenreimen kann.

Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

Gruß Jan :-)


Redmi Note 9 Pro  mit Android 11, Tablet Android 8.1, PC: Win10

Offline

#6 2013-08-02 08:26:11

maxbe
Member
Registered: 2010-01-19
Posts: 3,255
Website

Re: Frage zur Postgresql-Syntax

Lübeck wrote:

Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

update tabelle set X=tags->'X' where tags?'X';

Offline

#7 2013-08-02 09:21:05

wambacher
Member
From: Schlangenbad/Wambach, Germany
Registered: 2009-12-16
Posts: 16,769
Website

Re: Frage zur Postgresql-Syntax

Lübeck wrote:

Wie kann ich den Ausdruck umbauen damit der neuen Spalte X der Wert eines bestimmten Schlüssels zuweisen kann?

update tabelle set X=tags->'X' where tags?'X';

Warum? neue Spalte erstellen weil dir hstore Probleme macht? Dann kannst du gleich zu osm2pgsql wechseln.

Das mal lesen, obwohl ich nicht begeistert bin: http://www.postgresql.org/docs/9.1/static/hstore.html

Gruss
walter

Last edited by wambacher (2013-08-02 09:22:40)

Offline

Board footer

Powered by FluxBB