Win-XP: Fehlermeldung Funktion addgeometrycolumn exisiert nicht. SQL-Status 42883

Hallo Forum,

ich habe eine lauffähige PostGIS-Datenbank unter Linux-openSUSE. Ich möchte diese nun auch unter Windows XP lauffähig haben, wozu ich mir PostgreSQL und die PostGIS-Erweiterung installiert. Über pgAdmin kann ich Postgres starten.

Mein Problem:
Beim Einlesen der Tabellenstruktur füge ich meiner Tabelle an einem Punkt das Geometriefeld hinzu. Der in Linux funktionierende (!) SQL-Ausdruck lautet:

SELECT AddGeometryColumn('Schemataname', 'Tabellenname','the_geom',25833,'POLYGON', 2);

Nur kommt die Fehlermeldung:

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

FEHLER: Funktion addgeometrycolumn(unknown, unknown, unknown, integer, unknown, integer) existiert nicht
SQL Status:42883
Hinweis:Keine Funktion stimmt mit dem angegebenen Namen und den Argumenttypen überein. Sie müssen möglicherweise ausdrückliche Typumwandlungen hinzufügen.
Zeichen:36

Was ist mit der Fehlermeldung gemeint?
Ist vielleicht mein PostGIS noch nicht richtig installiert?

Danke für die Hilfe.
Patrice

P.S. Ich nutze [font=&quot]PostgreSQL Version 8.4.4.1[/font] und [font=&quot]PostGIS 1.5.1 release for PostgreSQL 8.4 (inc. GEOS 3.2.0/PROJ 4.6.1[/font])

Das wäre meine erste Vermutung …

Andreas

Hmmh… - ich habe es soweit aber einfach durchlaufen lassen, ohne Fehlermeldungen!
Gibt es vielleicht andere Fehlerquellen?

Patrice

Das glaub ich Dir sogar - und vermute, Du hast PostGIS einfach nur auf der falschen Datenbank installiert, und nicht auf der, wo Du arbeitest…


Andreas

Du hast recht: Lasse ich mein Statement auf der Datenbank mit Namen postgis laufen funktioniert es. Bleibt eine Frage: Wie kriege ich meine ursprüngliche Datenbank, nennen wir sie TESTDATENBANK, postgis-fähig???

Danke für die Hilfe!
Patrice

Indem Du das SQL-File, welches die PostGIS-Funktionen enthält, in Deiner TESTDATENBANK ausführst. War einfach jetzt, gell?

Andreas

Scherzkeks… - genau dann kommt ja die von mir aufgezeigte Fehlermeldung. Also: Einfügen in Datenbank postgis geht, einfügen in TESTDATENBANK führt zur im ersten Beitrag stehenden Fehlermeldung…

Gruß
Patrice

Nein, Du gehst nicht einen Schritt zurück (einspielen der Daten), sondern 2 Schritte: einspielen der PostGIS-Erweiterung. Diesen Schritt wiederholst Du, auf der richtigen Datenbank.

Andreas

Genau. Du must irgendeine postgis-xx.sql Datei in der Datenbank/Template ausführen das du nutzen willst.

Gruß Uwe

Danke für die Hinweise.
Ich habe eine Datei postgis.sql in meiner TESTDATENBANK ausgeführt.
Anschließend mein Tabellenerstellungsskript eingespielt. Es kommt weiterhin zu Fehlermeldungen am Punkt:

SELECT AddGeometryColumn('Schemataname', 'Tabellenname','the_geom',25833,'POLYGON', 2);



FEHLER: AddGeometryColumns() - invalid SRID
CONTEXT: SQL statement “SELECT AddGeometryColumn(’’, $1 , $2 , $3 , $4 , $5 , $6 )”
PL/pgSQL-Funktion »addgeometrycolumn« Zeile 4 bei SQL-Anweisung


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

FEHLER: AddGeometryColumns() - invalid SRID
SQL Status:P0001
Kontext:SQL statement “SELECT AddGeometryColumn(’’, $1 , $2 , $3 , $4 , $5 , $6 )”
PL/pgSQL-Funktion »addgeometrycolumn« Zeile 4 bei SQL-Anweisung

Da die Fehlermeldung sich von der unter Punkt 1 geposteten unterscheidet, bin ich wohl schon etwas weiter, oder?

Gruß
Patrice

Sorry, du solltest irgendwo auch ein sql finden, das spatial_ref_sys.sql heißt. Dies legt dir eine Tabelle an mit den notwendigen Koordinatensystemen. Habs vergessen zu erwähnen. Der Fehler rührt jetzt daher, das dieses in der mutmaßlich leeren Tebelle gerade nicht gefunden wird. Oder du versuchste es mal mit -1 als SRID.

Gruß uwe

Ja.

Andreas

@Uwe: jetzt läuft es. Mein Problem ist behoben.
Die Lösungsschritte in pgAdminIII nochmal kurz zusammengefasst:

  1. TESTDATENBANK ausgewählt
  2. Auswahl des SQL-Abfragewerkzeugs (Strg+E)
  3. Dort Einfügen des Textes aus Datei: share\contrib\postgis-1.5\postgis.sql --> Ausführen (F5)
  4. Dort Einfügen des Textes aus Datei: share\contrib\postgis-1.5\spatial_ref_sys.sql --> Ausführen (F5)
  5. Dort Einfügen meines Tabellenerstellungsskriptes für TESTDATENBANK, inkl. des Textes der im Posting Nr. 1 zur Fehlermeldung führt. --> Ausführen (F5)
    Ergebnis: Die Tabellenstruktur ist enthalten, Geometrien können erfasst werden…

Danke!!!
Patrice