Function Issue and casting
Hi friends, It's my first time I'm writing to the list. All days I enjoy the
list!
I declare a function, and when I want to call this, it fails.
My function:
CREATE OR REPLACE FUNCTION
alta_docente(integer,varchar,varchar,varchar,bigint,varchar,integer)
RETURNS VOID AS
$body$
declare
codigo integer;
begin
INSERT INTO persona(cod,dni,nombre,apellido,domicilio,telefono) VALUES
(DEFAULT,$1,$2,$3,$4,$5);
codigo := currval('persona_cod_seq');
INSERT INTO persona_docente(cod,legajo,antiguedad) VALUES
(codigo,$6,$7);
end;
$body$
LANGUAGE 'plpgsql';
The call I'm doing:
SELECT alta_docente(2323232,cast('Mariela' AS varchar),cast('Botti' AS
varchar),cast('232 de Noviemb23' AS varchar),cast(2312312321AS
bigint),cast('323232A' AS varchar),23)
And here is the error:
ERROR: function alta_docente(integer, character varying, character varying,
character varying, bigint, character varying, integer) does not exist at
character 8
HINT: No function matches the given name and argument types. You might need
to add explicit type casts.
STATEMENT: SELECT alta_docente(2323232,cast('Mariela' AS
varchar),cast('Botti' AS varchar),cast('232 de Noviemb23' AS
varchar),cast(2312312321AS bigint),cast('323232A' AS varchar),23)
I don't know what's the problem, because I did all the explicit cast I think
to convert types. If someone can help me, It would be great!
Thanks a lot
JP Cook
Sorry about my bad english!
On Saturday 04 July 2009 10:47:34 am Juan Pablo Cook wrote:
Hi friends, It's my first time I'm writing to the list. All days I enjoy
the list!
I declare a function, and when I want to call this, it fails.My function:
CREATE OR REPLACE FUNCTION
alta_docente(integer,varchar,varchar,varchar,bigint,varchar,integer)
RETURNS VOID AS
$body$
declare
codigo integer;
begin
INSERT INTO persona(cod,dni,nombre,apellido,domicilio,telefono) VALUES
(DEFAULT,$1,$2,$3,$4,$5);
codigo := currval('persona_cod_seq');INSERT INTO persona_docente(cod,legajo,antiguedad) VALUES
(codigo,$6,$7);
end;
$body$
LANGUAGE 'plpgsql';The call I'm doing:
SELECT alta_docente(2323232,cast('Mariela' AS varchar),cast('Botti' AS
varchar),cast('232 de Noviemb23' AS varchar),cast(2312312321AS
bigint),cast('323232A' AS varchar),23)And here is the error:
ERROR: function alta_docente(integer, character varying, character
varying, character varying, bigint, character varying, integer) does not
exist at character 8
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.
STATEMENT: SELECT alta_docente(2323232,cast('Mariela' AS
varchar),cast('Botti' AS varchar),cast('232 de Noviemb23' AS
varchar),cast(2312312321AS bigint),cast('323232A' AS varchar),23)I don't know what's the problem, because I did all the explicit cast I
think to convert types. If someone can help me, It would be great!Thanks a lot
JP Cook
Sorry about my bad english!
Is this a schema path issue? Did you create function in one schema and call it
from another which does not have access to the function schema? Two things to
check are the search path and whether the user calling the function has rights
to the schema containing the function.
--
Adrian Klaver
aklaver@comcast.net
Adrian, thanks a lot!!! for your quicky reply. Thats the error!, my casting
was ok, but my schema path was wrong. I didn't realize that.
Thanks a lot!
Bye!
On Sat, Jul 4, 2009 at 3:25 PM, Adrian Klaver <aklaver@comcast.net> wrote:
Show quoted text
On Saturday 04 July 2009 10:47:34 am Juan Pablo Cook wrote:
Hi friends, It's my first time I'm writing to the list. All days I enjoy
the list!
I declare a function, and when I want to call this, it fails.My function:
CREATE OR REPLACE FUNCTION
alta_docente(integer,varchar,varchar,varchar,bigint,varchar,integer)
RETURNS VOID AS
$body$
declare
codigo integer;
begin
INSERT INTO persona(cod,dni,nombre,apellido,domicilio,telefono)VALUES
(DEFAULT,$1,$2,$3,$4,$5);
codigo := currval('persona_cod_seq');INSERT INTO persona_docente(cod,legajo,antiguedad) VALUES
(codigo,$6,$7);
end;
$body$
LANGUAGE 'plpgsql';The call I'm doing:
SELECT alta_docente(2323232,cast('Mariela' AS varchar),cast('Botti' AS
varchar),cast('232 de Noviemb23' AS varchar),cast(2312312321AS
bigint),cast('323232A' AS varchar),23)And here is the error:
ERROR: function alta_docente(integer, character varying, character
varying, character varying, bigint, character varying, integer) does not
exist at character 8
HINT: No function matches the given name and argument types. You might
need to add explicit type casts.
STATEMENT: SELECT alta_docente(2323232,cast('Mariela' AS
varchar),cast('Botti' AS varchar),cast('232 de Noviemb23' AS
varchar),cast(2312312321AS bigint),cast('323232A' AS varchar),23)I don't know what's the problem, because I did all the explicit cast I
think to convert types. If someone can help me, It would be great!Thanks a lot
JP Cook
Sorry about my bad english!
Is this a schema path issue? Did you create function in one schema and call
it
from another which does not have access to the function schema? Two things
to
check are the search path and whether the user calling the function has
rights
to the schema containing the function.--
Adrian Klaver
aklaver@comcast.net
Import Notes
Reply to msg id not found: 90019f490907041211l15fbf21dp34899ce8c9b941c1@mail.gmail.com