1

我需要在 postgresql 函数中解析电话号码。我正在使用水线 ORM,并且基本上是在 javascript 中进行此计算。现在我想将整个逻辑移动到 postgresql 存储函数。但瓶颈是 libphonenumber 库的可用性。它在 Node.js 中可用,但不确定如何在 postgresql 中使用它。

任何想法 ?

4

2 回答 2

1

由于它在 C++ 和 JavaScript 中可用,因此您可以:

  • 安装和加载 PL/V8 并将其用作 PL/V8 存储过程中的 JavaScript 库;或者

  • 为 PostgreSQL 编写一个 C 扩展,通过将 C++ 函数包装在库的 C++ 版本中,将函数公开为 SQL 可调用函数。

不用说,前者可能更容易,除非你对 C 编程很熟悉。

于 2014-07-27T13:39:53.757 回答
1

已经有可用于libphonenumber的 C 绑定

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
    ('0370101234'),
    ('03 7010 1234'),
    ('(03) 7010 1234')
  ) AS t(ph);

在这里找到我的答案以获取更多信息

于 2017-02-18T01:49:36.473 回答