Ananasinka
Neues Mitglied
Hallo zusammen,
seit Kurzem beschäftige ich mich mit SQL und versuche im Moment anhand einfacher Beispiele das Grundgerüst zu erlernen.
Ich habe eine Funktion geschrieben, die in eine vorhandene Tabelle einen Datensatz einfügen soll, falls die Geometrie (POINT) aus diesem Datensatz komplett innerhalb von der Geometrie (MULTIPOLYGON) eines Objektes aus einer anderen Tabelle liegt (also, WITHIN). Dabei sollte außerdem eine entsprechende Meldung rauskommen.
Allerdings kann ich die Methode nicht aufrufen, da nach dem Befehl
immer wieder eine Fehlermeldung kommt:
Vielen Dank für eure Hilfe.
seit Kurzem beschäftige ich mich mit SQL und versuche im Moment anhand einfacher Beispiele das Grundgerüst zu erlernen.
Ich habe eine Funktion geschrieben, die in eine vorhandene Tabelle einen Datensatz einfügen soll, falls die Geometrie (POINT) aus diesem Datensatz komplett innerhalb von der Geometrie (MULTIPOLYGON) eines Objektes aus einer anderen Tabelle liegt (also, WITHIN). Dabei sollte außerdem eine entsprechende Meldung rauskommen.
PHP:
CREATE OR REPLACE FUNCTION fuegeStadtEin(stadtname text, landname text, location POINT)
RETURNS VARCHAR AS $$
BEGIN
IF (Within(location, bundeslaender.umriss)) THEN
INSERT INTO staedte VALUES (stadtname, landname, location);
RETURN 'Die Stadt ' || stadtname || ' wurde eingetragen';
ELSE
RETURN 'Die Stadt ' || stadtname || ' wurde nicht eingetragen';
END IF;
END;
$$ LANGUAGE plpgsql;
PHP:
SELECT fuegeStadtEin('Hannover', 'Niedersachsen', PointFromText('POINT(12 9)', -1));
Ich verstehe nicht, warum der Parametertyp plötzlich "unknown" wird. Woran könnte es liegen?ERROR: function fuegestadtein(unknown, unknown, geometry) does not exist
LINE 1: SELECT fuegeStadtEin('Hannover', 'Niedersachsen', PointFromT...
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Vielen Dank für eure Hilfe.