Пишите все oop в Teradata - PullRequest
       8

Пишите все oop в Teradata

0 голосов
/ 07 января 2020

У меня проблемы с выполнением некоторых макросов в TERADATA. У меня есть один большой макрос, который включает в себя 3 других макроса. Это выглядит так:

create MACRO D_RISK_SANDBOX.saldo_pagos(fecha_desde date, fecha_hasta date, fecha_fin_desde date, fecha_fin_hasta date)
as
(
 exec D_RISK_SANDBOX.saldo ( :fecha_desde,:fecha_hasta);
 exec D_RISK_SANDBOX.pagos_cuotas( :fecha_desde,:fecha_hasta,:fecha_fin_desde,:fecha_fin_hasta);
 exec D_RISK_SANDBOX.pagos_refin( :fecha_desde,:fecha_hasta,:fecha_fin_desde,:fecha_fin_hasta);
)

exec D_RISK_SANDBOX.saldo_pagos('2016/08/01','2016/08/31','2016/09/01','2019/08/31')

Сегодня я выполняю большой макрос (D_RISK_SANDBOX.saldo_pagos) для каждого нужного месяца. Было бы проще сделать al oop, но я не знаю как. Я читал о процедурах магазина, но я не знаю, как сделать все oop с датами. Даты могут быть в массиве, поэтому у меня может быть что-то вроде этого: (первый столбец - это дата, остальные столбцы - результат каждого «маленького» макроса)

enter image description here

1 Ответ

0 голосов
/ 07 января 2020

Общая дата l oop будет выглядеть так:

CREATE PROCEDURE proc_1 (IN date_1 date, IN date_2 DATE)
BEGIN
DECLARE DateCnt DATE;
  SET DateCnt = date_1;
WHILE DateCnt <= date_2 DO
BEGIN 
  set DateCnt = DateCnt + 1;
END ;
END WHILE;
END;

Вызов:

call proc_1('2020-01-01','2020-01-07');
...