ОШИБКА: функция unnest (integer []) не существует в postgresql
-
27-10-2019 - |
Вопрос
При выполнении вышеуказанного запроса я получил следующую ошибку:
родовое слово Я использую PostgreSQL 8.3 и установил пакет _int.sql
в свою базу данных для работы с целочисленным массивом.
Как исправить эту ошибку?
Решение
unnest()
не является частью модуля intarray
, а является частью стандартного PostgreSQL. Однако вам нужна версия 8.4 или более поздней версии для этого.
Таким образом, вы можете решить эту проблему путем обновления до более новой версии, предпочтительно до текущей версии 9.1. См. политику управления версиями проекта PostgreSQL .
Если вам следует использовать общую базу данных Heroku, которая в настоящее время использует версию 8.3, они также рассматривают возможность обновления. Heroku Labs уже предлагает версию 9.1 .
Как прокомментировал @Abdul, вы можете самостоятельно реализовать генерирующий кодовый код бедняка в версиях до PostgreSQL 8.4:
родовое слово Однако имейте в виду, что это работает только для одномерных массивов . (В отличие от кода unnest()
PostgreSQL, который принимает массивы с несколькими измерениями):
Вы могли бы реализовать больше функций для n-мерных массивов:
родовое словоЗвоните:
родовое словоВы также можете написать функцию PL / pgSQL, которая имеет дело с несколькими измерениями ...