sql >> Database >  >> RDS >> PostgreSQL

PostgreSQL proceduretaal C niet gevonden

U loopt waarschijnlijk tegen deze wijziging aan in PostgreSQL 9.2 (waarbij u de release-opmerkingen hier citeert):

Niet langer gedwongen kleine letters proceduretaal namen in CREATEFUNCTION (Robert Haas)

Hoewel niet-aangehaalde taal-ID's nog steeds in kleine letters zijn, worden tekenreeksen en aanhalingstekens niet langer gedwongen in kleine letters geplaatst. Dus bijvoorbeeld CREATE FUNCTION ... TAAL 'C' zal niet langer werken; het moet gespeld zijn met 'c', of beter de aanhalingstekens weglaten.

Het wordt ook weerspiegeld in de handleiding voor CREATE FUNCTION

lang_name

De naam van de taal waarin de functie is geïmplementeerd. Kan SQL zijn , C , internal , of de naam van een door de gebruiker gedefinieerde proceduretaal. Voor achterwaartse compatibiliteit kan de naam tussen enkele aanhalingstekens staan.

Het citeren van de taalnaam is ontmoedigd sinds ten minste versie 7.3 (misschien langer), maar oude gewoonten sterven natuurlijk moeilijk uit. Verwijder de aanhalingstekens rond 'C' lost het probleem op en komt uit op:LANGUAGE c of LANGUAGE C .

PL/R was in dat opzicht nog niet klaar voor PostgreSQL 9.2, te oordelen naar de projectpagina.

Feedback van Joe Conway

Joe Conway liet een antwoord achter dat werd verwijderd omdat het een opmerking zou moeten zijn. Ik plak het hier voor het grote publiek dat verwijderde antwoorden niet kan zien:

Ik kreeg het bericht, ik heb alleen geen tijd gehad om een ​​nieuwe PL/R-release te maken. Zoek ernaar in december, maar in de tussentijd is de hierboven vermelde handmatige oplossing vrij eenvoudig.



  1. Essentiële PostgreSQL-bewaking - Deel 3

  2. Afronding op 2 decimalen in SQL

  3. SQL-query om geaggregeerd resultaat te krijgen in kommascheidingstekens samen met groep voor kolom in SQL Server

  4. Hoe een CSV-bestand in PostgreSQL te importeren