ubuntuusers.de

PostgreSQL Programmierung "einfache Variable" anlegen?

Status: Ungelöst | Ubuntu-Version: Ubuntu 9.04 (Jaunty Jackalope)
Antworten |

the_clapper

Anmeldungsdatum:
3. Juli 2009

Beiträge: 134

Hallo, ich mache meine ersten Gehversuche mit einer PostgreSQL Datenbank und PostGis. Zum editieren benutze ich psql. Um Funktionen zu programmieren brauche ich Werte/Variablen, die ich berechnen lasse und dann nur kurzfristig speichern muss. Nach der Operattion kann die Variable wieder verschwinden, muss also nicht auf immer und ewig in der DB gespeichert werden.

Gibt es eine Möglichkeit eine "einfach Variable" anzulegen, ohne sie in einer Spalte zu speichern? Z.B. sowas: real a = 5.0, nur eben in psql / PostgreSQL?

Für Tipps wäre ich sehr dankbar. Ich schildere auch gerne das Szenario genauer, falls es nötig sein sollte.

comm_a_nder

Avatar von comm_a_nder

Anmeldungsdatum:
5. Februar 2006

Beiträge: 2533

Wohnort: Dresden

Variablen an sich gibt es nur, wenn Du pl/pgsql nutzt (Dir also eine eigene Funktion schreibst). Das geht seit 9.0 auch als Anonyme Funktion, so dass Du sie nicht speichern mußt. Eine Alternative wäre das Speichern in einer temporären Tabelle.

the_clapper

(Themenstarter)

Anmeldungsdatum:
3. Juli 2009

Beiträge: 134

Danke für die Antwort. Habe mich für pl/pgsql entschieden.

Gleich ein programmiertechnisches Problem. Ich habe eine Reihe von Messdaten (x,y,z) in meiner Datenbank in einer Tabelle als GeometryColumn gefüllt mit POINT3Ds, das ist ein (der) PostGis-Typ. Jedenfalls möchte ich jetzt die Spalte durchlaufen und herausfinden, wie viele unterschiedliche x-Werte es gibt und welche Koordinaten sie haben. Es handelt sich um Streifen in so einer Art Raster.

Also COUNT() beschafft mir die Anzahl der Messpunkte. Dann würde ich eine Schleife durchlaufen, so oft wie COUNT(). Nur, gibt es eine Funktion a la hasNext() oder so? Die mir automatisch den nächsten Punkt in der Spalte beschafft?

the_clapper

(Themenstarter)

Anmeldungsdatum:
3. Juli 2009

Beiträge: 134

Also die Funktionalität der Funktionsprogrammierung in pl/pgsql gefällt mir sehr. Das ist genau das, was ich gesucht habe.

NUR: Im Moment mache ich alles innerhalb einer Funktion, die (ja wohl per Definition) nur einen Rückgabewert haben darf. Gibt es auch die Möglichkeit ohne Rückgabewert zu arbeiten oder mit vielen? Ich habe wohl so einiges an dem Konzept noch nicht geschnallt.

Ich brauche quasi die Funktionalität von pl/pgsql um ein script mit "einfachen Variablen" zu erstellen.

Antworten |