我正在构建一个项目,我需要从我的sql服务器从Oracle远程服务器获取数据,并且需要创建一个列表,并在远程服务器上刷新该数据时对这些数据进行一些计算。
目标是创建一个SQL作业,以在x时间运行,例如每天4h,8、12、16、20、24、4h,8 ...每天运行此过程
CREATE PROCEDURE GetAbastecimentosCalculados
AS
BEGIN
DECLARE @Abastecimentos TABLE
(
Referencia varchar(50) NOT NULL,
UAP varchar(30) NOT NULL,
W01 float NOT NULL,
W02 FLOAT NOT NULL,
ConsumoDiarioW01 float NOT NULL,
ConsumoDiarioW02 float NOT NULL,
Stock float NOT NULL
);
INSERT INTO @Abastecimentos
SELECT * FROM viewAbastecimentosStocks
SELECT A.Referencia, A.UAP, A.W01, A.W02, A.ConsumoDiarioW01, A.ConsumoDiarioW02, A.Stock,
CONVERT(decimal(10,2), ConsumoDiarioW01 / P.NumPAB ) AS ConsumoPAB,
CONVERT(decimal(10,2), ConsumoDiarioW01 / P.NumPAB ) * P.QtdMin AS StockMin,
CONVERT(decimal(10,2), ConsumoDiarioW01 / P.NumPAB ) * P.QtdMax AS StockMax,
CONVERT(decimal(10,2), ConsumoDiarioW01 / P.NumPAB ) * P.AlcanceAbastecimento AS QtdAbastecimento
FROM @Abastecimentos A
LEFT JOIN UAP U
ON U.Nome = A.UAP
LEFT JOIN Parametros P
ON P.UAPId = U.Id
END
但是,我的客户告诉我它想在任何可能的时间运行它。除了添加手动刷新按钮外,我该如何处理?
我考虑过使用websocket在客户端可用时保持刷新数据,但这意味着我不知道它是如何工作的,例如...如果我必须每秒钟或类似的时间运行该查询。 / p>
或者是否有办法知道何时在远程服务器上刷新数据?就像在特定表上创建手表一样
编辑
请注意,我们无法访问远程服务器,只能读取数据