Thread: Pg/PLSQL Errors!!
I am running PostgreSQL 6.5.3 on RedHat Linux 6.1 on a PC. I am trying to use Pg/PLSQL. I even tried being conservative enough to copy the example code from http://www.postgresql.org/docs/user/c40874340.htm as follows: CREATE FUNCTION add_one (int4) RETURNS int4 AS ' BEGIN RETURN $1 + 1; END; ' LANGUAGE 'plpgsql'; though, even that results in "ERROR: Unrecognized language specified in a CREATE FUNCTION: 'pl-pgsql'. Recognized languagesare sql, C, internal and the created procedural languages." I have tried variants including PLSQL,PG/PLSQL,PL/SQL,PGSQL and even 'internal procedural language(s)' and 'created procedural language(s)' though with the same error. Does anyone know of the name of the postgreSQL's procedural language of form like CREATE function funcName(arguments) returns returntype AS 'BEGIN statement block END;' LANGUAGE '??????'; Many Thanks! ---------------------------------------------------------------- Get your free email from AltaVista at http://altavista.iname.com
On Tue, 30 May 2000 p.lam@altavista.net wrote: > I am running PostgreSQL 6.5.3 on RedHat Linux 6.1 on a PC. > I am trying to use Pg/PLSQL. > > I even tried being conservative enough to copy the example code from > http://www.postgresql.org/docs/user/c40874340.htm as follows: > CREATE FUNCTION add_one (int4) RETURNS int4 AS ' > BEGIN > RETURN $1 + 1; > END; > ' LANGUAGE 'plpgsql'; > > > though, even that results in "ERROR: Unrecognized language specified in a CREATE FUNCTION: 'pl-pgsql'. Recognized languagesare sql, C, internal and > the created procedural languages." > > I have tried variants including PLSQL,PG/PLSQL,PL/SQL,PGSQL and even 'internal > procedural language(s)' and 'created procedural language(s)' though with the same error. > > Does anyone know of the name of the postgreSQL's procedural language of form like > CREATE function funcName(arguments) returns returntype AS 'BEGIN > statement block END;' LANGUAGE '??????'; Do you install this language in your DB? See the script 'createlang' in PG binary tree. Karel
Hi You need to make the call_handler and create the language plpgsql. Assuming postgres is installed in /usr/local/pgsql Example: -- Setup -- define the languages and the associated handlers CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS '/usr/local/pgsql/lib/plpgsql.so' LANGUAGE 'C'; CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'; On Tue, 30 May 2000 p.lam@altavista.net wrote: > I am running PostgreSQL 6.5.3 on RedHat Linux 6.1 on a PC. > I am trying to use Pg/PLSQL. > > I even tried being conservative enough to copy the example code from > http://www.postgresql.org/docs/user/c40874340.htm as follows: > CREATE FUNCTION add_one (int4) RETURNS int4 AS ' > BEGIN > RETURN $1 + 1; > END; > ' LANGUAGE 'plpgsql'; > > > though, even that results in "ERROR: Unrecognized language specified in a CREATE FUNCTION: 'pl-pgsql'. Recognized languagesare sql, C, internal and > the created procedural languages." > > I have tried variants including PLSQL,PG/PLSQL,PL/SQL,PGSQL and even 'internal > procedural language(s)' and 'created procedural language(s)' though with the same error. > > Does anyone know of the name of the postgreSQL's procedural language of form like > CREATE function funcName(arguments) returns returntype AS 'BEGIN > statement block END;' LANGUAGE '??????'; > > Many Thanks! > > > > ---------------------------------------------------------------- > Get your free email from AltaVista at http://altavista.iname.com >
did you install the procedural language correctly? under RedHat, you have to do the following: (the location of the handler is different because of packaging conventions) CREATE FUNCTION plpgsql_call_handler () RETURNS OPAQUE AS '/usr/lib/pgsql/plpgsql.so' LANGUAGE 'C'; CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsql' HANDLER plpgsql_call_handler LANCOMPILER 'PL/pgSQL'; On Tue, 30 May 2000 p.lam@altavista.net wrote: > I am running PostgreSQL 6.5.3 on RedHat Linux 6.1 on a PC. > I am trying to use Pg/PLSQL. > > I even tried being conservative enough to copy the example code from > http://www.postgresql.org/docs/user/c40874340.htm as follows: > CREATE FUNCTION add_one (int4) RETURNS int4 AS ' > BEGIN > RETURN $1 + 1; > END; > ' LANGUAGE 'plpgsql'; > > > though, even that results in "ERROR: Unrecognized language specified in a CREATE FUNCTION: 'pl-pgsql'. Recognized languagesare sql, C, internal and > the created procedural languages." > > I have tried variants including PLSQL,PG/PLSQL,PL/SQL,PGSQL and even 'internal > procedural language(s)' and 'created procedural language(s)' though with the same error. > > Does anyone know of the name of the postgreSQL's procedural language of form like > CREATE function funcName(arguments) returns returntype AS 'BEGIN > statement block END;' LANGUAGE '??????'; > > Many Thanks! > > > > ---------------------------------------------------------------- > Get your free email from AltaVista at http://altavista.iname.com >
p.lam@altavista.net writes: > though, even that results in "ERROR: Unrecognized language specified in a CREATE FUNCTION: 'pl-pgsql'. Recognized languagesare sql, C, internal and > the created procedural languages." Uh, did you run the "createlang" script to install plpgsql into your database? It's not installed by default ... regards, tom lane
Tom Lane <tgl@sss.pgh.pa.us> writes: > Uh, did you run the "createlang" script to install plpgsql into your > database? It's not installed by default ... Why isn't it installed by default? Just asking.
SL Baur <steve@beopen.com> writes: > Tom Lane <tgl@sss.pgh.pa.us> writes: >> Uh, did you run the "createlang" script to install plpgsql into your >> database? It's not installed by default ... > Why isn't it installed by default? Just asking. Paranoia, mostly --- we weren't sure we wanted it to be enabled without an explicit decision by the dbadmin. I'm not sure I can point to any compelling reasons why it'd be dangerous, but on the other side it's not proven to be totally safe either. pltcl and plperl don't get installed by default either, and those I definitely wouldn't agree to enabling by default... they don't have enough track record. plpgsql is more of a borderline call. regards, tom lane