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
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
Curtir tópico
+ 0
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
Clique aqui para fazer login e interagir na Comunidade :)