Resultado de uma Procedure
Pessoal, estou tentando criar uma Procedure para retornar um calculo para o parametro de saia ´CUSTOAT´ , mas não estou conseguindo, como faço para jogar o valor calculado para este parametro ?
Procedure :
CREATE PROCEDURE PR_CUSTOAT (
inicio time,
fim time,
intervalo time,
custohora decimal(15,2))
returns (
custoat decimal(15,2))
as
begin
/* Procedure Text */
if (fim>=inicio) then
custoat=((fim-inicio-intervalo)*24)*custohora;
else
custoat=(24-(inicio*24)+(fim-intervalo)*24)*custohora;
suspend;
end
Procedure :
CREATE PROCEDURE PR_CUSTOAT (
inicio time,
fim time,
intervalo time,
custohora decimal(15,2))
returns (
custoat decimal(15,2))
as
begin
/* Procedure Text */
if (fim>=inicio) then
custoat=((fim-inicio-intervalo)*24)*custohora;
else
custoat=(24-(inicio*24)+(fim-intervalo)*24)*custohora;
suspend;
end
Murilo-jau
Curtidas 0
Respostas
Murilo-jau
18/10/2007
Achei o Erro, só consegui alterando os tipos dos parâmetros de entrada, dava erro em calcular uma TIME com DECIMAL :
DDL:
CREATE OR ALTER PROCEDURE PR_CUSTO_AT (
inicio decimal(5,2),
fim decimal(5,2),
inter decimal(5,2),
custohora decimal(15,2))
returns (
custo_at decimal(15,2))
as
begin
/* Procedure Text */
if (fim>=inicio) then
custo_at= ((:fim-:inicio-:inter)*24)*:custohora;
else
custo_at=(24-(:inicio*24)+(:fim-:inter)*24)*:custohora;
suspend;
end^
DDL:
CREATE OR ALTER PROCEDURE PR_CUSTO_AT (
inicio decimal(5,2),
fim decimal(5,2),
inter decimal(5,2),
custohora decimal(15,2))
returns (
custo_at decimal(15,2))
as
begin
/* Procedure Text */
if (fim>=inicio) then
custo_at= ((:fim-:inicio-:inter)*24)*:custohora;
else
custo_at=(24-(:inicio*24)+(:fim-:inter)*24)*:custohora;
suspend;
end^
GOSTEI 0