Problema function
mais uma vez, probleminha na function
codigo da function
depois que executo:
e
ele preenche os campos somente com 1 dos estados da tabela, o que pode ser???
codigo da function
CREATE OR REPLACE FUNCTION verifica_estado() returns integer AS
'
DECLARE
registros RECORD;
BEGIN
FOR registros in SELECT * FROM clientes LOOP
IF registros.estado = ''RS'' THEN
INSERT INTO estados(nome) VALUES(''RIO Grande do Sul'');
ELSEIF registros.estado = ''SP'' THEN
INSERT INTO estados(nome) VALUES(''São Paulo'');
ELSEIF registros.estado = ''RJ'' THEN
INSERT INTO estados(nome) VALUES(''Rio de Janeiro'');
ELSEIF registros.estado = ''SC'' THEN
INSERT INTO estados(nome) VALUES(''Santa Catarina'');
ELSE
INSERT INTO estados(nome) VALUES(''Não cadastrado'');
END IF;
return 0;
END LOOP;
END
'
language 'plpgsql'
depois que executo:
select verifica_estado();
e
select * from estados;
ele preenche os campos somente com 1 dos estados da tabela, o que pode ser???
Alan Mario
Curtidas 0
Respostas
Alan Mario
08/11/2012
pessoal, olhem esse problema!!!
obrigado
obrigado
GOSTEI 0
Bruno Leandro
08/11/2012
Ola Alan deixa eu entender a sua necessidade, voce quer criar uma função para listar todos os clientes e verificar se os estados definidos nos clientes, se não existirem ainda na tabela de estados incluir na sua tabela de estados com a estrutura codigo_estado e nome ?
GOSTEI 0
Alan Mario
08/11/2012
essa função é para adicionar os estados, porem só esta adicionando o "Rio de janeiro" em sequencia...
GOSTEI 0
Bruno Leandro
08/11/2012
certo esse problema deve estar ocorrendo pelo comando return estar dentro do loop, ao executa-lo a função deve estar parando, teste utilizando o return 0; a baixo do end loop assim
CREATE OR REPLACE FUNCTION verifica_estado() returns integer AS
'
DECLARE
registros RECORD;
BEGIN
FOR registros in SELECT * FROM clientes LOOP
IF registros.estado = ''RS'' THEN
INSERT INTO estados(nome) VALUES(''RIO Grande do Sul'');
ELSEIF registros.estado = ''SP'' THEN
INSERT INTO estados(nome) VALUES(''São Paulo'');
ELSEIF registros.estado = ''RJ'' THEN
INSERT INTO estados(nome) VALUES(''Rio de Janeiro'');
ELSEIF registros.estado = ''SC'' THEN
INSERT INTO estados(nome) VALUES(''Santa Catarina'');
ELSE
INSERT INTO estados(nome) VALUES(''Não cadastrado'');
END IF;
END LOOP;
return 0;
END
'
language 'plpgsql'
CREATE OR REPLACE FUNCTION verifica_estado() returns integer AS
'
DECLARE
registros RECORD;
BEGIN
FOR registros in SELECT * FROM clientes LOOP
IF registros.estado = ''RS'' THEN
INSERT INTO estados(nome) VALUES(''RIO Grande do Sul'');
ELSEIF registros.estado = ''SP'' THEN
INSERT INTO estados(nome) VALUES(''São Paulo'');
ELSEIF registros.estado = ''RJ'' THEN
INSERT INTO estados(nome) VALUES(''Rio de Janeiro'');
ELSEIF registros.estado = ''SC'' THEN
INSERT INTO estados(nome) VALUES(''Santa Catarina'');
ELSE
INSERT INTO estados(nome) VALUES(''Não cadastrado'');
END IF;
END LOOP;
return 0;
END
'
language 'plpgsql'
GOSTEI 0
Alan Mario
08/11/2012
Bruno, assim que possivel vou testar esse codigo...
depois deixo uma resposta aqui, informando se deu certo ou não...
obrigado
depois deixo uma resposta aqui, informando se deu certo ou não...
obrigado
GOSTEI 0
Bruno Leandro
08/11/2012
ok, ficamos no aguardando
GOSTEI 0
Alan Mario
08/11/2012
show de bola Bruno...tudo ok!!!
muito obrigado!!!
muito obrigado!!!
GOSTEI 0
Alan Mario
08/11/2012
post concluido!!!
GOSTEI 0