Как вернуть данные из VT с помощью хранимой процедуры в Teradata? - PullRequest
0 голосов
/ 23 января 2020

У меня есть хранимая процедура без параметров. Как я могу вернуть результаты / данные из VT, созданного там?

Я хотел бы, чтобы процедура возвращала:

select * from VT

Я не знаю, как реализовать там курсоры ..

Есть предложения?

REPLACE PROCEDURE PROCEDURE_()
BEGIN
DECLARE VT_CREATE VARCHAR(10000);
SET VT_CREATE = 'CREATE VOLATILE TABLE VT
(
      A DECIMAL(38,0),
      B BIGINT
) NO PRIMARY INDEX ON COMMIT PRESERVE ROWS;';
CALL DBC.SYSEXECSQL(VT_CREATE);

BEGIN
DECLARE VT_INSERT LONG VARCHAR;
SET VT_INSERT = 'INSERT INTO VT SEL 1, 2;';

CALL DBC.SYSEXECSQL(VT_INSERT);


END;
END;

1 Ответ

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

Разве это не делает то же самое?

create macro mc_1
as (
  select cast( 1 as decimal(38,0) ) , cast( 2 as bigint);
)  
;

exec mc_1;
...