Jump to content

Dúvida em Loop PL/SQL


maomelov
 Share

Recommended Posts

Boa tarde,

preciso de Criar um bloco PL/SQL para inserir números na tabela MESSAGES.

Quero Inserir os números de 1 a 10, excluindo 6 e 8.

Não sei como definir no if para excluir o 6 e o 8.

O Script que fiz não exclui o 6 e 8, dá erro.

Podem ajudar?

--RESULTADO PRETENDIDO

---------

1

2

3

4

5

7

9

10

DECLARE

VNUM NUMBER(2) :=1;

BEGIN

    LOOP 

        IF (VNUM  >=1 AND VNUM <6) AND

          (VNUM  >8 AND VNUM <11) AND

            VNUM=7

          THEN

          INSERT INTO MESSAGES

          (RESULTS)

          VALUES (VNUM);

          DBMS_OUTPUT.PUT_LINE(VNUM);

          VNUM := VNUM + 1;

          EXIT WHEN VNUM = 11;

        END IF;

    END LOOP; 

END;

/

Link to comment
Share on other sites

O ciclo chegava-te ao fim...é que a mim pendurou-me a sessão...

cá para mim esse loop deve estar estragado... (olhando melhor a condição que queres nunca acontece porque usaste o and...em todas as condições) entretanto estive  a ver, e o código que envio deve fazer a coisa...

set serveroutput on --o meu servidor precisa disto....
DECLARE
VNUM NUMBER(2) :=1;
BEGIN
    for i in 1.. 10 loop
        if not i = 6 and not i = 8  THEN
         --faz o que tens a fazer
          DBMS_OUTPUT.PUT_LINE(i);
        END IF;
    END LOOP;   
END;

Quando te pedirem peixe.... ensina-os a Pescar!!Hum..lálálálá!!

Link to comment
Share on other sites

"O ciclo chegava-te ao fim...é que a mim pendurou-me a sessão...

o ciclo nunca chega ao fim porque nunca entra no IF 😛

o ciclo começa com VNUM = 1.. depois o IF valida se é => 1 e < 6.. é! e > 8 e < 11, não é! portanto.. dá sempre FALSE, não entra no IF, nunca incrementa o VNUM.. ciclo infinito 😄

pahh.. claramente o código do José Lopes é bem mais claro e eficaz 😄

inté!

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.