SAP HANA: как вставить результат хранимой процедуры в локальную временную таблицу
Я пытаюсь сохранить результат моей хранимой процедуры чтения / записи в локальной временной таблице. После создания временной таблицы я пишу -
INSERT INTO #TMP call SPName;
сохранить результат во временной таблице, но он говорит, что функция не поддерживается. Есть ли способ сохранить результат хранимой процедуры во временной таблице. Я не хочу изменять определение уже созданного SP, но хочу сохранить результат во временной таблице, чтобы объединить его с другим набором операторов, чтобы получить мой окончательный результат.
2 ответа
Вы пытались использовать тип выходной таблицы в качестве параметра хранимой процедуры? А затем использовать этот параметр out в вашей хранимой процедуре, чтобы вернуть результат?
Это типичный подход, используемый во многих примерах в документации.
DROP TYPE TT_MYTYPE;
CREATE TYPE TT_MYTYPE AS TABLE(A VARCHAR (100), B INT);
DROP PROCEDURE MYPROC;
CREATE PROCEDURE MYPROC (OUT OUTPUT_TABLE TT_MYTYPE )
LANGUAGE SQLSCRIPT SQL SECURITY INVOKER
AS
BEGIN
OUTPUT_TABLE = SELECT 'Test' as A, 3 as B FROM DUMMY;
END;
-- output table is created dynamically and in the overview you can get the table name
CALL MYPROC( ? ) with overview;
-- pass an output parameter table to receive the result
DROP TABLE MYOUTPUT;
CREATE TABLE MYOUTPUT LIKE TT_MYTYPE;
CALL MYPROC( MYOUTPUT ) with overview;
SELECT * FROM MYOUTPUT;
Надеюсь это поможет.
Вы можете использовать расширение WITH RESULT VIEW определения процедуры. Например, если я использую код @Abdel
CREATE PROCEDURE MYPROC (OUT OUTPUT_TABLE TT_MYTYPE )
LANGUAGE SQLSCRIPT
READS SQL DATA
WITH RESULT VIEW myView
AS
BEGIN
OUTPUT_TABLE = SELECT 'Test' as A, 3 as B FROM DUMMY ;
END;
Затем вы можете просто выполнить инструкцию SELECT в myView следующим образом
SELECT * FROM myView ;
Для получения более подробной информации о том, как вы можете использовать С Result View для выбора данных из процедуры HANA, вы можете обратиться к данному учебнику.
Если ваша процедура принимает входные параметры, представление, созданное "с представлением результата", может быть запрошено так же, как параметрическое представление