error in open cursor

Started by Ashish Karalkarabout 19 years ago2 messagesgeneral
Jump to latest
#1Ashish Karalkar
ashish_karalkar@yahoo.com

Hello all,
I am getting a syntax error near open cursor,
can anybody please point me what is missing. i am
using Postgresql 8.2

CREATE OR REPLACE FUNCTION
sp_gen_foreign_keys_tables(OUT par_result integer, OUT
par_childtables text, IN par_colname character varying
, IN par_colvalue integer) AS
$BODY$

DECLARE
tablename varchar(300);
columnname varchar(300);
countno integer;
curfroeign cursor (columnname varchar(300)) is select
distinct(fk_relation),fk_column from foreign_keys
where pk_relation in (select pk_relation from
foreign_keys where pk_column=columnname);
var_str1 varchar(300);

BEGIN

open curforeign(par_colname);

FETCH curforeign INTO tablename,columnname;

var_str1:='select count(*) into'||countno||'from'
||tablename || 'where' ||columnname||'='||parcolvalue;
execute var_str1;
if countno >0 then
par_childtables:=par_childtables || ',' ||tablename;
endif ;

close curfroeign ;

END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE;

____________________________________________________________________________________
Need a quick answer? Get one in minutes from people who know.
Ask your question on www.Answers.yahoo.com

#2Alban Hertroys
alban@magproductions.nl
In reply to: Ashish Karalkar (#1)
Re: error in open cursor

Ashish Karalkar wrote:

Hello all,
I am getting a syntax error near open cursor,
can anybody please point me what is missing. i am
using Postgresql 8.2

CREATE OR REPLACE FUNCTION
sp_gen_foreign_keys_tables(OUT par_result integer, OUT
par_childtables text, IN par_colname character varying
, IN par_colvalue integer) AS
$BODY$

DECLARE
tablename varchar(300);
columnname varchar(300);
countno integer;
curfroeign cursor (columnname varchar(300)) is select
distinct(fk_relation),fk_column from foreign_keys
where pk_relation in (select pk_relation from
foreign_keys where pk_column=columnname);
var_str1 varchar(300);

BEGIN

open curforeign(par_colname);

Postgres doesn't know what curforeign is, it does however know what
curfroeign is ;)

--
Alban Hertroys
alban@magproductions.nl

magproductions b.v.

T: ++31(0)534346874
F: ++31(0)534346876
M:
I: www.magproductions.nl
A: Postbus 416
7500 AK Enschede

// Integrate Your World //