2008/10/29, tetraetila(R) <[EMAIL PROTECTED]>: > > Minha função abaixo está me retornando o seguinte erro: > > ERROR: record "myrec" has no field "id" > CONTEXT: PL/pgSQL function "whichrowslocked" line 10 at assignment > > ********** Erro ********** > > ERROR: record "myrec" has no field "id" > SQL state: 42703 > Contexto: PL/pgSQL function "whichrowslocked" line 10 at assignment > > > Eu a utilizo passando a tabela e a coluna - select whichrowslocked( > 'a003.a003015_tbl, 'sql_recno' ) > > E me retorna o erro descrito acima, se puderem me dar uma luz agradeço. > > Obrigado > > Adilson Nunes > > > > -------------------------------------------------------------------------------- > > -- Function: a003.whichrowslocked(text, text) > > -- DROP FUNCTION a003.whichrowslocked(text, text); > > CREATE OR REPLACE FUNCTION a003.whichrowslocked(text, text) > RETURNS SETOF text AS > $BODY$ > DECLARE > sql_recno RECORD; > myst TEXT; > innermyst TEXT; > BEGIN > myst = 'SELECT '||$2||' FROM '||$1; > innermyst = 'SELECT '||$2||' AS id FROM ' > ||$1||' WHERE '||$2||'='; > FOR sql_recno IN EXECUTE myst LOOP > myst = innermyst||sql_recno.id||' FOR UPDATE NOWAIT'; > BEGIN > EXECUTE myst; > EXCEPTION WHEN lock_not_available THEN > RETURN NEXT sql_recno.id; > END; > END LOOP; > RETURN; > END; > > > $BODY$ > LANGUAGE 'plpgsql' VOLATILE STRICT > COST 100 > ROWS 1000; > ALTER FUNCTION a003.whichrowslocked(text, text) OWNER TO adilson; > > -------------------------------------------------------------------------------- >
Me parece estar havendo um problema com referência a "sql_recno". Ora ele é sua tabela ora a variável do comando FOR. Talvez o PostgreSQL não esteja conseguindo interpretar corretamente o que você deseja. Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
