Thread: Script done... Function won´t work...
Once again, ;-) The script is finally done i hope ... i can create my function.... no problem but when i'm calling it up with a SELECT zufall(); statement pgAdmin tells me there is no function with that name... although its listed in my function list as zufall!!!! ... <runningagainstthewallheadfirst> SOURCE: create or replace function zufall(int4) returns text as ' declare anzahl alias for $1; i int4; zeichen char(1); zufallstext text; entries int8; begin loop zufallstext := ''''; for i in 1..anzahl loop select chr(trunc((random()*26)+65)) into zeichen; zufallstext := zufallstext || zeichen; end loop; SELECT count(*) into entries FROM se_errorcode WHERE entry = zufallstext; EXIT WHEN entries = 0; end loop; return zufallstext; end; ' language 'plpgsql';
Marcel Boscher wrote: > Once again, ;-) > > The script is finally done i hope ... > > i can create my function.... no problem > but when i'm calling it up with a > SELECT zufall(); statement pgAdmin > tells me there is no function with that name... > although its listed in my function list as zufall!!!! ... > <runningagainstthewallheadfirst> > > > SOURCE: > create or replace function zufall(int4) returns text as ' > declare > anzahl alias for $1; > i int4; > zeichen char(1); > zufallstext text; > entries int8; > begin > loop > zufallstext := ''''; > for i in 1..anzahl loop > select chr(trunc((random()*26)+65)) into zeichen; > zufallstext := zufallstext || zeichen; > end loop; > SELECT count(*) into entries FROM se_errorcode > WHERE entry = zufallstext; > EXIT WHEN entries = 0; > end loop; > return zufallstext; > end; > ' language 'plpgsql'; > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly > > First, make sure that you're passing in an argument: SELECT zufall(5); When I try it on my test db (7.4) I get: testdb=# SELECT zufall(5); ERROR: function chr(double precision) does not exist HINT: No function matches the given name and argument types. You may need to add explicit type casts. CONTEXT: PL/pgSQL function "zufall" line 11 at select into variables so you should also check the arguments and return type of the chr() function. Hope that helps. Ron
Hello, I believe you need to call your function as pass an int everytime. SELECT zufall(0); If you have multiple databases, not in schema sense, make sure you clicked somewhere on the screen within that database sothe sql window points to that database. Mike On Tue, Aug 10, 2004 at 05:08:39PM +0200, Marcel Boscher wrote: > Once again, ;-) > > The script is finally done i hope ... > > i can create my function.... no problem > but when i'm calling it up with a > SELECT zufall(); statement pgAdmin > tells me there is no function with that name... > although its listed in my function list as zufall!!!! ... > <runningagainstthewallheadfirst> > > > SOURCE: > create or replace function zufall(int4) returns text as ' > declare > anzahl alias for $1; > i int4; > zeichen char(1); > zufallstext text; > entries int8; > begin > loop > zufallstext := ''''; > for i in 1..anzahl loop > select chr(trunc((random()*26)+65)) into zeichen; > zufallstext := zufallstext || zeichen; > end loop; > SELECT count(*) into entries FROM se_errorcode > WHERE entry = zufallstext; > EXIT WHEN entries = 0; > end loop; > return zufallstext; > end; > ' language 'plpgsql'; > > > ---------------------------(end of broadcast)--------------------------- > TIP 3: if posting/reading through Usenet, please send an appropriate > subscribe-nomail command to majordomo@postgresql.org so that your > message can get through to the mailing list cleanly