PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL процедурния език C не е намерен

Вероятно се сблъсквате с тази промяна в PostgreSQL 9.2 (цитирайки бележките по изданието тук):

Вече няма насилствени имена на процедурни езици с малки букви в CREATEFUNCTION (Робърт Хаас)

Докато езиковите идентификатори без кавички все още са с малки букви, низовете и идентификаторите в кавички вече не се намаляват принудително. Така например CREATE FUNCTION ... ЕЗИК 'C' вече няма да работи; трябва да пише „c“ или по-добре да пропуснете кавичките.

Също така е отразено в ръководството за CREATE FUNCTION

име_език

Името на езика, на който е внедрена функцията. Може да бъде SQL , C , internal , или името на дефиниран от потребителя процедурен език. За обратна съвместимост името може да бъде затворено в единични кавички.

Цитирането на името на езика е обезкуражено поне от версия 7.3 (може би по-дълго), но старите навици очевидно умират трудно. Премахване на кавичките около 'C' отстранява проблема, достигайки до:LANGUAGE c или LANGUAGE C .

PL/R не беше готов за PostgreSQL 9.2 в това отношение, съдейки от страницата на проекта.

Обратна връзка от Джо Конуей

Джо Конуей остави отговор, който беше изтрит, защото трябва да бъде коментар. Поставям го тук за широката публика, която не може да види изтритите отговори:

Получих съобщението, просто нямах време да направя нова версия на PL/R. Потърсете го до декември, но междувременно ръчното решение, отбелязано по-горе, е доста лесно.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Анализ на лог на PostgreSQL с pgBadger

  2. Как да ускоря броенето на редове в PostgreSQL таблица?

  3. Как cbrt() работи в PostgreSQL

  4. Поръчайте varchar низ като число

  5. Относно клъстерирания индекс в postgres