sql >> Database teknologi >  >> RDS >> PostgreSQL

PostgreSQL proceduresprog C ikke fundet

Du løber sandsynligvis ind i denne ændring i PostgreSQL 9.2 (citer udgivelsesbemærkningerne her):

Ikke længere tvangsmæssige små proceduresprogsnavne i CREATEFUNCTION (Robert Haas)

Mens sprogidentifikatorer uden anførselstegn stadig er med små bogstaver, nedskrives strenge og identifikatorer med citater ikke længere med magt. Således vil for eksempel CREATE FUNCTION ... LANGUAGE 'C' ikke længere virke; det skal staves 'c', eller bedre udelade anførselstegnene.

Det er også afspejlet i manualen til CREATE FUNCTION

lang_navn

Navnet på det sprog, som funktionen er implementeret i. Kan være SQL , C , internal , eller navnet på et brugerdefineret proceduresprog. For bagudkompatibilitet kan navnet være omgivet af enkelte anførselstegn.

At citere sprognavnet er blevet frarådet siden i det mindste version 7.3 (måske længere), men gamle vaner dør naturligvis hårdt. Fjernelse af anførselstegn omkring 'C' løser problemet og ankommer til:LANGUAGE c eller LANGUAGE C .

PL/R var ikke klar til PostgreSQL 9.2 i den henseende, at dømme ud fra projektsiden.

Feedback fra Joe Conway

Joe Conway efterlod et svar, der blev slettet, fordi det skulle være en kommentar. Jeg indsætter det her for den brede offentlighed, der ikke kan se slettede svar:

Jeg fik beskeden, har bare ikke haft tid til at lave en ny PL/R-udgivelse. Se efter den inden december, men i mellemtiden er den manuelle løsning, der er nævnt ovenfor, ret enkel.



  1. Dynamisk MySQL-databaseforbindelse til Entity Framework 6

  2. SQL Server-systemdatabaser – Gendan systemdatabaser

  3. Sådan deaktiveres streng SQL-tilstand i MySQL 5.7

  4. Brug af PgBouncer Connection Pooler til PostgreSQL med ClusterControl 1.8.2