Converter Stored Procedure de SQL Server para Firebird
Tenho essa Stored Procedure em SQL Server e preciso passar ela pro Firebird.
Alguém poderia me ajudar?
Obrigado
GO
/****** Object: StoredProcedure [dbo].[SP_Animal_DesmamaAutomatica] Script Date: 04/09/2014 16:47:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Animal_DesmamaAutomatica]
@wp_desmamaPelosDias INT, -- 0 = Não | 1 = Sim
@wp_idAnimal INT
AS
BEGIN
SET NOCOUNT ON;
IF (@wp_idAnimal <> 0)
BEGIN
declare
@wi_idmatriz int = 0
-- Pega o ID da Matriz
select @wi_idmatriz = IDMATRIZ from TB_MATRIZ where IDANIMAL = @wp_idAnimal
if @wi_idmatriz <> 0
begin
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END
IF (@wp_desmamaPelosDias = 1)
BEGIN
Declare @qtdadeDias int
set @qtdadeDias = 0
set @qtdadeDias = (
select IDADEFINAL from TB_SITUACAO where IDSITUACAO = 1
)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END
SET NOCOUNT OFF
END
/****** Object: StoredProcedure [dbo].[SP_AbreSistema] Script Date: 08/10/2009 12:26:19 ******/
SET ANSI_NULLS ON
Alguém poderia me ajudar?
Obrigado
GO
/****** Object: StoredProcedure [dbo].[SP_Animal_DesmamaAutomatica] Script Date: 04/09/2014 16:47:23 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Animal_DesmamaAutomatica]
@wp_desmamaPelosDias INT, -- 0 = Não | 1 = Sim
@wp_idAnimal INT
AS
BEGIN
SET NOCOUNT ON;
IF (@wp_idAnimal <> 0)
BEGIN
declare
@wi_idmatriz int = 0
-- Pega o ID da Matriz
select @wi_idmatriz = IDMATRIZ from TB_MATRIZ where IDANIMAL = @wp_idAnimal
if @wi_idmatriz <> 0
begin
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(TB_ANIMAL.IDMATRIZ = @wi_idmatriz) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END
END
IF (@wp_desmamaPelosDias = 1)
BEGIN
Declare @qtdadeDias int
set @qtdadeDias = 0
set @qtdadeDias = (
select IDADEFINAL from TB_SITUACAO where IDSITUACAO = 1
)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 1) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(DATEDIFF(day, TB_ANIMAL.DTNASCIMENTO, getdate()) > @qtdadeDias) and
(TB_ANIMAL.IDSITUACAO = 6) and
(TB_ANIMAL.IDTIPOSAIDA = 0) and
(TB_ANIMAL.EXCLUIDO = 0)
END
SET NOCOUNT OFF
END
/****** Object: StoredProcedure [dbo].[SP_AbreSistema] Script Date: 08/10/2009 12:26:19 ******/
SET ANSI_NULLS ON
Jason Mello
Curtidas 0
Respostas
Thiago Irrazabal
09/04/2014
Boa tarde, segue o código da procedure em FireBird.
Att,
Thiago Irrazabal de Oliveira.
CREATE OR ALTER PROCEDURE SP_ANIMAL_DESMAMAAUTOMATICA (
WP_DESMAMAPELOSDIAS INTEGER, -- 0 = NÃO | 1 = SIM
WP_IDANIMAL INTEGER)
AS
DECLARE VARIABLE WI_IDMATRIZ INTEGER;
DECLARE VARIABLE QTDADEDIAS INTEGER;
BEGIN
IF (WP_IDANIMAL <> 0) THEN
BEGIN
WI_IDMATRIZ = 0;
-- PEGA O ID DA MATRIZ
FOR SELECT IDMATRIZ FROM TB_MATRIZ WHERE IDANIMAL = :WP_IDANIMAL INTO
:WI_IDMATRIZ DO
IF (:WI_IDMATRIZ <> 0) THEN
BEGIN
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(TB_ANIMAL.IDMATRIZ = :WI_IDMATRIZ) AND
(TB_ANIMAL.IDSITUACAO = 1) AND
(TB_ANIMAL.IDTIPOSAIDA = 0) AND
(TB_ANIMAL.EXCLUIDO = 0);
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(TB_ANIMAL.IDMATRIZ = :WI_IDMATRIZ) AND
(TB_ANIMAL.IDSITUACAO = 6) AND
(TB_ANIMAL.IDTIPOSAIDA = 0) AND
(TB_ANIMAL.EXCLUIDO = 0);
END
END
IF (WP_DESMAMAPELOSDIAS = 1) THEN
BEGIN
QTDADEDIAS = 0;
FOR SELECT IDADEFINAL FROM TB_SITUACAO WHERE IDSITUACAO = 1 INTO
:QTDADEDIAS DO
BEGIN
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 2
WHERE
(DATEDIFF(DAY, TB_ANIMAL.DTNASCIMENTO, CURRENT_DATE) > :QTDADEDIAS) AND
(TB_ANIMAL.IDSITUACAO = 1) AND
(TB_ANIMAL.IDTIPOSAIDA = 0) AND
(TB_ANIMAL.EXCLUIDO = 0);
UPDATE
TB_ANIMAL
SET
TB_ANIMAL.IDSITUACAO = 7
WHERE
(DATEDIFF(DAY, TB_ANIMAL.DTNASCIMENTO, CURRENT_DATE) > :QTDADEDIAS) AND
(TB_ANIMAL.IDSITUACAO = 6) AND
(TB_ANIMAL.IDTIPOSAIDA = 0) AND
(TB_ANIMAL.EXCLUIDO = 0);
END
END
SUSPEND;
END;
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Jason Mello
09/04/2014
O que tem de errado nesta SP?
BEGIN
DELETE FROM TB_Adm_Menu;
UPDATE
TB_ADM_SISTEMA
SET
remontamenu = 0;
ENDGOSTEI 0
Thiago Irrazabal
09/04/2014
Não há nada de errado.
Att,
Thiago Irrazabal de Oliveira.
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Jason Mello
09/04/2014
Preciso de mais uma ajuda nessa SP. Se puder ajudar eu agradeço.
USE [eVet]
GO
/****** Object: StoredProcedure [dbo].[SP_Peso_Excluir] Script Date: 04/13/2014 12:48:44 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: Jason Mello
-- Create date: 19/03/2009
-- Description: Exclusão de peso
-- =============================================
ALTER PROCEDURE [dbo].[SP_Peso_Excluir]
@wp_idPeso INT,
@wp_idAnimal INT
AS
BEGIN
SET NOCOUNT ON;
UPDATE
TB_PESO
SET
excluido = 1
WHERE
(idPeso = @wp_idPeso)
declare
@UltimoPeso float,
@UltimoData datetime
SELECT top 1
@UltimoPeso = PESO,
@UltimoData = MAX(DTPESAGEM)
FROM TB_PESO
where IDANIMAL = @wp_idAnimal
and EXCLUIDO = 0
GROUP BY PESO
ORDER BY PESO DESC
UPDATE
TB_ANIMAL
SET
PESOATUAL = @UltimoPeso
WHERE
IDANIMAL = @wp_idAnimal
SET NOCOUNT OFF
END
GOSTEI 0