我在postgres中有一個將數據插入表的功能,其中一列的類型爲point
。將點類型數據保存到pg服務器
我不知道如何將獲得的數據保存爲可接受的格式以保存我的數據。
有問題的有問題的代碼是:
CREATE OR REPLACE FUNCTION db."setMessage"(eml text, msg text, lat text, lng text)
...
INSERT INTO
db.messages
VALUES
(DEFAULT,
id,
$2,
DEFAULT,
ST_SetSRID(ST_MakePoint($3::float, $4::float), 4326)
);
當我調用該函數是接收到的錯誤:
ERROR: function st_makepoint(double precision, double precision) does not exist
SQL state: 42883
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Context: PL/pgSQL function "setMessage" line 9 at SQL statement
我試圖保存的字符串格式點('POINT(12.22343 64.22233)'
),嘗試不是施放st_makepoint參數,而是在沒有外部函數的情況下插入(ST_SetSRID
)。
有人能告訴我我做錯了什麼嗎?
SOLUTION:
所以成功的方法,下面這個link獲得需要的庫。之後,我創建了所需的擴展,現在我可以訪問所需的功能。
看起來像PostGIS沒有安裝。 \ df ST_MakePoint'的輸出是什麼? –
你的輸出是0行。我在哪裏安裝PostGIS? –
我試過'apt-get install postgis',但它返回了一些字體包(dejavu) –