sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL procedurální jazyk C nenalezen

Pravděpodobně narážíte na tuto změnu v PostgreSQL 9.2 (zde citujte poznámky k verzi):

Již ne vynucená malá písmena v názvech procedurálních jazyků v CREATEFUNCTION (Robert Haas)

Zatímco identifikátory jazyka v uvozovkách jsou stále psány malými písmeny, řetězce a identifikátory v uvozovkách již nejsou vynucené. Například CREATE FUNCTION ... LANGUAGE 'C' již nebude fungovat; musí být napsáno 'c', nebo lépe vynechat uvozovky.

Je to také zohledněno v příručce pro CREATE FUNCTION

lang_name

Název jazyka, ve kterém je funkce implementována. Může to být SQL , C , internal nebo název uživatelem definovaného procedurálního jazyka. Pro zpětnou kompatibilitu může být název uzavřen do jednoduchých uvozovek.

Uvádět název jazyka se nedoporučuje minimálně od verze 7.3 (možná déle), ale staré zvyky samozřejmě těžce umírají. Odstranění uvozovek kolem 'C' opravuje problém a dorazí na:LANGUAGE c nebo LANGUAGE C .

PL/R nebyl v tomto ohledu připraven na PostgreSQL 9.2, soudě podle stránky projektu.

Zpětná vazba od Joea Conwaye

Joe Conway zanechal odpověď, která byla smazána, protože by to měl být komentář. Vkládám to sem pro širokou veřejnost, která nevidí smazané odpovědi:

Dostal jsem zprávu, jen jsem neměl čas udělat novou verzi PL/R. Hledejte ji do prosince, ale mezitím je ruční řešení uvedené výše docela jednoduché.



  1. LIMIT 10..20 na serveru SQL

  2. Jak změnit model obnovy databáze SQL Server pomocí T-SQL

  3. Jak opravit „Konverze se nezdařila při převodu hodnoty na datový typ“ v SQL Server

  4. Jak zabránit poškození databáze v aplikaci Microsoft Access