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, вы можете обратиться к данному учебнику.

Если ваша процедура принимает входные параметры, представление, созданное "с представлением результата", может быть запрошено так же, как параметрическое представление

Другие вопросы по тегам