Ich versuche, eine gespeicherte Prozedur in MSSMS zu erstellen, die, wenn sie ausgeführt wird, die in der Anweisung execute angegebenen Daten in zuvor erstellte Tabellen einfügen.STPointFromText ohne Angabe von Koordinaten im Code
Dies ist, was ich derzeit habe;
Create Procedure UDP_INSERT_TABLES3
@shape_type varchar(30)
,@wktdata varchar(max)
,@label varchar(40)
AS
Begin
set nocount on;
if @shape_type = 'Point'
insert into Points (Point, Label)
values (@wktdata, @label)
END
Wenn ich jedoch versuche, dies mit einer Anweisung wie auszuführen;
exec UDP_INSERT_TABLES3 'Point', '(179.59 -40.35)', 'My House'
Ich bekomme "Fehler beim Konvertieren von Datentyp Varchar in Geographie."
Von was ich verstehe, "STPointFromText" wird verwendet, um Varchar zu Geografie zu konvertieren, aber jedes Beispiel, das ich sehe, hat die Koordinaten sozusagen "hart codiert".
Zum Beispiel;
DECLARE @g geography;
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);
SELECT @g.ToString();
Was muss ich tun, um die in meiner Anweisung execute angegebenen Koordinaten zu konvertieren? Ich habe über die Verwendung von CAST nachgedacht, aber ich bin mir nicht sicher, wie ich sowohl die Breite als auch die Länge in einer Klammer umwandeln kann, anstatt sie einzeln zu übertragen.
Jede Hilfe würde sehr geschätzt werden.
Danke Mann, alles funktioniert jetzt perfekt –