Ir ao conteúdo
  • Cadastre-se

Problema com IF em procedure - Firebird


andreizortea

Posts recomendados

Opa.

Galera, eu to tentando montar aqui uma procedure no IBExpert usando um banco Firebird com a seguinte finalidade:

eu tenho duas tabelas, a PAIS e a X_PAIS

na tabela X_PAIS tem alguns paises que nao tem na tabela PAIS, e também a sigla dos paises da tabela X_PAIS é diferente da tabela PAIS

eu teria que alterar a sigla dos paises da tabela PAIS pra que fiquem igual aos da tabela X_PAIS, e ainda cadastrar os paises que nao existirem na tabela PAIS

pra isso, eu fiz isso

CREATE PROCEDURE UPD_PAIS(
IDPAIS ID,
DESCPAIS descricao,
SIGLPAIS SIGLA,
CODUSUARIO CODIGO
)
RETURNS (
IDPAIS ID,
DESCPAIS DESCRICAO,
SIGLPAIS SIGLA,
CODUSUARIO CODIGO
)
AS
BEGIN
SELECT * FROM PAIS
INNER JOIN X_PAIS ON PAIS.IDPAIS <> X_PAIS.IDPAIS
/*INTO :IDPAIS, :DESCPAIS, :SIGLPAIS, :CODUSUARIO
*/
IF (PAIS.IDPAIS = X_PAIS.IDPAIS) then
UPDATE PAIS SET PAIS.SIGLPAIS = X_PAIS.SIGLPAIS;

else
BEGIN
INSERT INTO PAIS(IDPAIS, DESCPAIS, SIGLPAIS, CODIUSUARIO)
VALUES(X_PAIS.IDPAIS,X_PAIS.DESCPAIS, X_PAIS.SIGLPAIS, X_PAIS.CODUSUARIO);
END

END
;

E ta me retornando isso:

Invalid token.

Dynamic SQL Error.

SQL error code = -104.

Token unknown - line 19, column 5.

IF.

Eu nao to conseguindo achar aonde esta o erro, se é algo na sintaxe ou se esta faltando algum comando.

Se alguem tiver alguma ideia do que pode estar acontecendo, fico muito agradecido.

t+

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!