如何在postgresql 9.4中安装/使用orafce包?

时间:2015-06-15 15:25:33

标签: postgresql debian orafce

我正在运行"官方"版本9.4中的docker container of postgresql。我进入了正在运行的容器并安装了orafce

docker exec -i -t my_postgres bash
apt-get install postgresql-9.4-orafce

之后我尝试重新加载并重新启动postgresql服务,并且只是重新启动整个容器,但是当我尝试使用函数时,应该在orafce中定义,它没有&#39工作。

我正在谈论here中的一个简单例子:

SELECT add_months(date '2005-05-31',1);  -- > 2005-06-30
SELECT last_day(date '2005-05-24');      -- > 2005-05-31
SELECT next_day(date '2005-05-24', 'monday'); -- > 2005-05-30
SELECT next_day(date '2005-05-24', 2); -- > 2005-05-30
SELECT months_between(date '1995-02-02', date '1995-01-01'); -- > 1.0322580645161
SELECT trunc(date '2005-07-12', 'iw');   -- > 2005-07-11
SELECT round(date '2005-07-12', 'yyyy'); -- > 2006-01-01

这是我得到的输出,只需将这些命令复制粘贴到phpggAdmin到postgres / public:

SQL error:

ERROR:  function add_months(date, integer) does not exist
LINE 1:   SELECT add_months(date '2005-05-31',1);  -- > 2005-06-30
                 ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
In statement:

  SELECT add_months(date '2005-05-31',1);  -- > 2005-06-30
  SELECT last_day(date '2005-05-24');      -- > 2005-05-31
  SELECT next_day(date '2005-05-24', 'monday'); -- > 2005-05-30
  SELECT next_day(date '2005-05-24', 2); -- > 2005-05-30
  SELECT months_between(date '1995-02-02', date '1995-01-01'); -- > 1.0322580645161
  SELECT trunc(date '2005-07-12', 'iw');   -- > 2005-07-11
  SELECT round(date '2005-07-12', 'yyyy'); -- > 2006-01-01

现在,我知道,我不应该直接在docker中安装软件包,也不应该使用phpPgAdmin,这只是一个简单的测试,看看我是否可以将较小的oracle DB移植到postgres。

为了能够使用orafce,我有什么遗漏吗?安装软件包或重新启动库时,我无法发现任何错误。

1 个答案:

答案 0 :(得分:0)

好的,一个轻松的

CREATE EXTENSION orafce

就够了