Recebe varchar,varchar,varchar,char DECLARE pnome ALIAS FOR $1; putilidade ALIAS FOR $2; pcidade ALIAS FOR $3; pclifor_cfcorpore ALIAS FOR $4; r RECORD; r2 tagenda1%rowtype; _sql TEXT; _sqlclifor_cfcorpore TEXT; _sqlagenda TEXT; BEGIN _sqlclifor_cfcorpore:=''; _sql:=' WHERE ag_nome IS NOT NULL '; IF LTRIM(RTRIM(pnome))<>'' THEN _sql:=_sql||' AND ag_nome like '||quote_literal('%'||pnome||'%'); END IF; IF LTRIM(RTRIM(putilidade))<>'' THEN _sql:= _sql||' AND ag_agenda.ag_agenda IN( select au_codagenda FROM ag_agendautilidade, ag_utilidade '|| ' WHERE ag_Agenda = au_codagenda AND au_utilidade = ut_utilidade '|| ' AND ut_descricao like '||quote_literal('%'||putilidade||'%')||')'; END IF; IF LTRIM(RTRIM(pcidade))<>'' THEN _sql:= _sql||' AND ag_agenda.ag_agenda IN( select ag_agenda FROM ag_endereco, ag_cidade '|| ' WHERE ag_agenda.ag_agenda = en_agenda AND en_cidade = cd_cidade '|| ' AND cd_nome like '||quote_literal('%'||pcidade||'%')||')'; END IF; _sql:=_sql||'ORDER BY ag_nome'; IF pclifor_cfcorpore='S' THEN _sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' WHERE '; IF LTRIM(RTRIM(pnome))<>'' THEN _sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' razaosocial like '||quote_literal('%'||pnome||'%'); END IF; IF LTRIM(RTRIM(pcidade))<>'' THEN _sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' cidade like '||quote_literal('%'||pcidade||'%'); END IF; _sqlclifor_cfcorpore:=_sqlclifor_cfcorpore||' ORDER BY razaosocial '; END IF; -- raise warning '_sqlclifor_cfcorpore %',_sqlclifor_cfcorpore; IF pclifor_cfcorpore='S' THEN _sqlagenda:='SELECT * FROM f_consulta_agenda('||quote_literal(_sql)||',1,'||quote_literal(_sqlclifor_cfcorpore)||')'; ELSE _sqlagenda:='SELECT * FROM f_consulta_agenda('||quote_literal(_sql)||',0,'||quote_literal(_sqlclifor_cfcorpore)||')'; END IF; -- raise warning '_sqlagenda %',_sqlagenda; FOR r IN EXECUTE _sqlagenda LOOP r2.col1:=r.col1; r2.col2:=r.col2; r2.col3:=r.col3; r2.col4:=r.col4; r2.col5:=r.col5; r2.col6:=r.col6; r2.col7:=r.col7; r2.col8:=r.col8; r2.col9:=r.col9; RETURN NEXT r2; END LOOP ; RETURN ; END ;