2014-07-27 80 views
1

我需要解析postgresql函數中的電話號碼。我正在使用水線ORM,基本上是在javascript中進行這種計算。現在我想將整個邏輯移到postgresql存儲的函數中。但瓶頸在於libphonenumber庫的可用性。它在Node.js中可用,但不知道如何在postgresql中使用它。在postgresql函數中使用libphonenumber庫

有什麼想法?

+0

考慮接受我的答案C綁定,雖然遲到了遊戲這是你在找什麼。 –

回答

1

有可供libphonenumber已經

CREATE EXTENSION pg_libphonenumber; 
SELECT parse_phone_number('03 7010 1234', 'AU') = parse_phone_number('(03) 7010 1234', 'AU'); 

CREATE TABLE foo 
AS 
    SELECT DISTINCT parse_phone_number(ph, 'AU') 
    FROM (VALUES 
    ('03701'), 
    ('03 7010 1234'), 
    ('(03) 7010 1234') 
) AS t(ph); 

查找我的回答here for more information

1

因爲它是目前在C++和JavaScript,你可以:

  • 安裝並加載PL/V8和使用它作爲一個PL/V8存儲過程,一個JavaScript庫;或者

  • 通過將C++函數包裝在C++版本的庫中,爲PostgreSQL編寫一個C擴展,它將函數公開爲SQL可調用函數。

不用說,前者可能更容易,除非您對C編程感到滿意。