SAP HANA Gespeicherte Prozedur Ausgabe-Typen und wie Sie wiederverwenden / capture output in SQLScript

In SAP HANA kann ich eine Prozedur erstellen, die mit in-und output-Parameter. Auch ohne output-parameter der Prozedur können Sie die Ausgabe einer Tabelle.

Merke ich drei Varianten der Ausgabe, die in gespeicherten Prozeduren:

  1. ein wählen Sie am Ende des Verfahrens - ohne Deklaration der Struktur.
  2. ein output-parameter out parameter varhcar(100)
  3. eine implizite Tabelle definition returns table (var1 varchar(10)) nach der Funktion parameter-und before-Schlüsselwort LANGUAGE SQLSCRIPT

Was ist der Unterschied von diesen und wie kann ich die Wiederverwendung jedes dieser output-Parameter in anderen gespeicherten Prozeduren?

Die einzige, die ich mir bewusst bin, ist

  1. call procedure(input1, input1, outputVar)

Ich weiß leider nicht, wie gebunden ein SQL-Ergebnis-Ausgabe-Parameter, ohne eine physikalische Tabelle.

Grund für diese Frage

Ausgabe 1

Funktion callBuildJoinOn gibt leeres Ergebnis. Aufgrund, dass die Schleife in SP_BUILD_JOIN_ON wird nicht ausgeführt - aber die Liste ist bauen in split string (beide getestet)

Proceedure callBuildJoinOn
...
in colTable1 nvarchar(200)
out columnsTable1 "SCHEMA"."package::TT.STRING_LIST"
call "SCHEMA"."package::SP_SPLIT_STRING"(colTable1, columnsTable1);
call "SCHEMA"."package::SP_BUILD_JOIN_ON"(:columnsTable1, :columnsTable2, :joinOn);

SP_BUILD_JOIN_ON
columnsTable1 "SCHEMA"."package::TT.STRING_LIST"
declare cursor columnList for
  select * from :columnsTable1;
for col as columnList do
    joinOn := joinOn || 'a.' || col.item;
end for;

, Warum die Aufteilung in zwei Funktionen?

Deklarieren des cursor Ergebnisse in der compiler-Fehler, wenn nach einem call-Anweisung

Schreibe einen Kommentar