Duvida basica - laço for

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
lpcruz2
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 1
Registrado em: Qui, 26 Nov 2009 1:19 pm
Localização: São Paulo

Estou tentando fazer uma questão de um trabalho a pergunta é :

Faça uma procedure capaz de inserir 5 registros na tabela fazmechorar utilizando o comando de repetição for:
a tabela fazmechorar tem 2 campos codigo(PK) e salario


Pelo exercicio o preenchimento deve ser feito automaticamente assim que eu executar a procedure, é isso ? Eu não estou conseguindo fazer.

Alguém pode me ajudar ?
victorhugomuniz
Moderador
Moderador
Mensagens: 1396
Registrado em: Sex, 01 Fev 2008 2:06 pm
Localização: Rio de Janeiro - RJ
Contato:
:D

Seja bem vindo amigo!!!

então..

qual a sua dúvida exatamente??

onde você impacou no seu código??
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Selecionar tudo

begin
  for i in 1..5 loop
    insert into fazmechorar values (i, i * 10);
  end loop;
  commit;
end;
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

pode usar o codigo do diego, mas corrigindo a parte que popula o código (pk) pra pegar um valor de alguma sequence ou ainda pegar o max(codigo) +1 da tabela pra isso. Ex:

Selecionar tudo

begin
for i in 1..5 loop
  insert into fazmechorar values (fazmechorar_sq.nextval, i * 10);
end loop;
commit;
end;

Ou ainda:

Selecionar tudo

begin
for i in 1..5 loop
  insert into fazmechorar select nvl(max(codigo) + 1,1),  i * 10 from   fazmechorar;
end loop;
commit;
end;
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

faz a PK com uma trigger before insert, uiahaui
burga
Rank: DBA Pleno
Rank: DBA Pleno
Mensagens: 232
Registrado em: Qui, 26 Nov 2009 1:05 pm
Localização: SP

Meu segundo exemplo foi infeliz... kkkkkk

Segue corrigido:

Selecionar tudo

begin
for i in 1..5 loop
  insert into fazmechorar select nvl((select max(codigo) + 1 
                  from   fazmechorar),1), 10 from dual;
end loop;
commit;
end;
A trigger de before insert também funciona!!!
:-o
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Pode fazer um java-source tambem e carregar no banco,
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante