O exit não resolve. Preciso que continue no loop. Tem que ser continue mesmo.
Alguém sabe como faço para resolver o problema do CONTINUE na versão 8.0? Até poderia usar a versão 8.1, mas to usando a ZEOSLib no delphi 7, e se usar a versão 8.1 dá um monte de erros, nem conecta! O pessoal disse pra baixar asatualizações da ZEOSLib no CVS, mas entrei lá e tá tudo bagunçado, não entendi nada. Preferiria usar a versão 8.1. To usando a 8.0 só por causada Zeoslib. ----- Original Message ----- From: "Nabucodonosor Coutinho" <[EMAIL PROTECTED]> To: <[email protected]> Sent: Thursday, April 27, 2006 1:08 PM Subject: Re: [PostgreSQL-Brasil] CONTINUE num loop com PSPGSQL Nelson Pereira Júnior escreveu: > Realmente, fiz exatamente como diz no manual. Testei várias vezes. A > verdade > é que o PG não reconhece o CONTINUE. > > Acho que encontrei um bug no PostgreSQL. > > Uso a versão 8.0. > > Alguém sabe se existe uma correção para o bug? > Vou verificar isso para você. Também vou fazer os testes aqui nas versões 8 e 8.1 Agora só uma perguntinha. O exit não resolve seu problema? O exit dentro de um loop, sai do loop, e continua a partir da primeira linha após o final do loop. -- Coutinho > Obrigado. > > ----- Original Message ----- > From: "Nelson Pereira Júnior" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Thursday, April 27, 2006 12:24 PM > Subject: Re: [PostgreSQL-Brasil] CONTINUE num loop com PSPGSQL > > > Compilei e testei a sua função chamando-a: > > select anomesInc('POGSQL', 10); > > Deu o mesmo erro que a minha função: > > ERROR: syntax error at or near "continue" at character 1 > QUERY: continue > CONTEXT: PL/pgSQL function "anomesinc" line 8 at SQL statement > > > ----- Original Message ----- > From: "Ribamar Sousa" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Thursday, April 27, 2006 11:58 AM > Subject: Re: [PostgreSQL-Brasil] CONTINUE num loop com PSPGSQL > > > Acredito que ajuda quando se envia o código testado. > Veja este que roda sem erro com continue: > > CREATE or REPLACE FUNCTION anomesInc(char(6),integer) RETURNS char(6) AS ' > DECLARE > anomes ALIAS for $1; > n ALIAS for $2; > ano integer; > mes integer; > BEGIN > FOR i in 1..n LOOP > continue; > end loop; > ano := substr(anomes, 1, 4)::integer; > mes := substr(anomes, 5, 2)::integer; > FOR i in 1..n LOOP > mes := mes + 1; > --continue; > IF mes = 13 THEN > mes := 1; > ano := ano + 1; > END IF; > END LOOP; > RETURN ano::text || lpad(mes::text,2,''0''); > END; > ' LANGUAGE plpgsql; > > 2006/4/27, Nelson Pereira Júnior <[EMAIL PROTECTED]>: > >> Na documentação diz pra eu usar como descrevo abaixo. Compilo e naum da >> erros, mas quando vou fazer o select, dá erro, dizendo >> >> ERROR: syntax error at or near "continue" at character 1 >> QUERY: continue when $1 >> CONTEXT: PL/pgSQL function "lex_lista_pessoa" line 51 at SQL statement >> >> while true loop >> >> instrução; >> instrução; >> >> continue when id > 50; >> >> instrução; >> instrução; >> >> end loop; >> >> ----- Original Message ----- >> From: "Ribamar Sousa" <[EMAIL PROTECTED]> >> To: <[email protected]> >> Sent: Thursday, April 27, 2006 10:12 AM >> Subject: Re: [PostgreSQL-Brasil] CONTINUE num loop com PSPGSQL >> >> >> Da documentação oficial: >> >> Inclusive o contínue. >> >> P.S.: Pelo que entendi, você precisa sair da iteração atual e não do >> loop. >> >> 36.7.3. Simple Loops >> >> With the LOOP, EXIT, CONTINUE, WHILE, and FOR statements, you can >> arrange for your PL/pgSQL function to repeat a series of commands. >> 36.7.3.1. LOOP >> >> [ <<label>> ] >> LOOP >> statements >> END LOOP [ label ]; >> >> LOOP defines an unconditional loop that is repeated indefinitely until >> terminated by an EXIT or RETURN statement. The optional label can be >> used by EXIT and CONTINUE statements in nested loops to specify which >> loop the statement should be applied to. >> 36.7.3.2. EXIT >> >> EXIT [ label ] [ WHEN expression ]; >> >> If no label is given, the innermost loop is terminated and the >> statement following END LOOP is executed next. If label is given, it >> must be the label of the current or some outer level of nested loop or >> block. Then the named loop or block is terminated and control >> continues with the statement after the loop's/block's corresponding >> END. >> >> If WHEN is specified, the loop exit occurs only if expression is true. >> Otherwise, control passes to the statement after EXIT. >> >> EXIT can be used with all types of loops; it is not limited to use >> with unconditional loops. When used with a BEGIN block, EXIT passes >> control to the next statement after the end of the block. >> >> Examples: >> >> LOOP >> -- some computations >> IF count > 0 THEN >> EXIT; -- exit loop >> END IF; >> END LOOP; >> >> LOOP >> -- some computations >> EXIT WHEN count > 0; -- same result as previous example >> END LOOP; >> >> BEGIN >> -- some computations >> IF stocks > 100000 THEN >> EXIT; -- causes exit from the BEGIN block >> END IF; >> END; >> >> 2006/4/27, Nelson Pereira Júnior <[EMAIL PROTECTED]>: >> >>> >>> Olá, >>> >>> Alguém sabe como faço para que de dentro de um loop eu interrompa as >>> instruções seguintes passando para o próximo loop? >>> >>> Exemplo: >>> >>> while true loop >>> >>> instrucao1; >>> instrucao1; >>> instrucao1; >>> >>> if passou = true then >>> continue; --Vai para o proximo loop sem executar as linhas de >>> baixo >>> end if; >>> >>> instrucao1; >>> instrucao1; >>> >>> end loop; >>> >>> Alguém sabe como faço isso usando PSPGSQL? >>> _______________________________________________ >>> Grupo de Usuários do PostgreSQL no Brasil >>> http://www.postgresql.org.br >>> >>> >>> >> -- >> Ribamar FS - ribafs[ ]users.sourceforge.com >> http://www.ribafs.tk >> _______________________________________________ >> Grupo de Usuários do PostgreSQL no Brasil >> http://www.postgresql.org.br >> >> >> _______________________________________________ >> Grupo de Usuários do PostgreSQL no Brasil >> http://www.postgresql.org.br >> >> > > > -- > Ribamar FS - ribafs[ ]users.sourceforge.com > http://www.ribafs.tk > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > http://www.postgresql.org.br > > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > http://www.postgresql.org.br > > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > http://www.postgresql.org.br > > _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil http://www.postgresql.org.br _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil http://www.postgresql.org.br
