Fórum Erro ao criar uma Stored procedure #57506

20/12/2006

0

Por favor me ajudem a encontrar este erro?Já verifiquei a linha e não encontro erros??


Dynamic SQL Error
SQL error code = -104
Token unknown - line 30, char -1
IF
Statement: CREATE PROCEDURE SP_PRODUTOR(
CODIGO VARCHAR(8),
NOME VARCHAR(80),
MUNICIPIO VARCHAR(80),
EMISSAOPROPRIA CHAR(1),
AREATOTAL NUMERIC(18, 2),
TIPO INTEGER
)
AS
BEGIN
if (tipo=1) then
begin
INSERT INTO PRODUTOR (
CODIGO,
NOME,
MUNICIPIO,
EMISSAOPROPRIA,
AREATOTAL)
VALUES (
:CODIGO,
:NOME,
:MUNICIPIO,
:EMISSAOPROPRIA,
:AREATOTAL);
WHEN SQLCODE -803 DO
EXCEPTION DUPLICIDADE;
END
SUSPEND;
END
IF(TIPO=2) THEN
BEGIN
UPDATE PRODUTOR
SET
NOME = :NOME,
MUNICIPIO = :MUNICIPIO,
EMISSAOPROPRIA = :EMISSAOPROPRIA,
AREATOTAL = :AREATOTAL
WHERE
(CODIGO = :CODIGO);
END
IF (tIPO=3) THEN
BEGIN
DELETE FROM PRODUTOR
WHERE
(CODIGO = :CODIGO);
SUSPEND;
END
END


Thaita

Thaita

Responder

Posts

20/12/2006

Emerson Nascimento

troque TIPO por :TIPO


Responder

Gostei + 0

20/12/2006

Emerson Nascimento

CREATE PROCEDURE SP_PRODUTOR (
    codigo varchar( 8 ),
    nome varchar(80),
    municipio varchar(80),
    emissaopropria char(1),
    areatotal numeric(18,2),
    tipo integer)
as
BEGIN
  if (:tipo = 1) then
  begin
    INSERT INTO PRODUTOR (
      CODIGO,
      NOME,
      MUNICIPIO,
      EMISSAOPROPRIA,
      AREATOTAL)
    VALUES (
      :CODIGO,
      :NOME,
      :MUNICIPIO,
      :EMISSAOPROPRIA,
      :AREATOTAL);
    WHEN SQLCODE -803 DO
      EXCEPTION DUPLICIDADE;
  end
  else
  if (:tipo = 2) then
    UPDATE PRODUTOR
      SET
        NOME = :NOME,
        MUNICIPIO = :MUNICIPIO,
        EMISSAOPROPRIA = :EMISSAOPROPRIA,
        AREATOTAL = :AREATOTAL
    WHERE
      CODIGO = :CODIGO;
  else
  if (:tipo = 3) then
    DELETE FROM PRODUTOR
    WHERE CODIGO = :CODIGO;
END


na verdade havia um END a mais, logo depois de
    WHEN SQLCODE -803 DO
      EXCEPTION DUPLICIDADE;



Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar