Übergeben von Arrays als parameter in DB2 Gespeicherte Prozedur
Ich bin versucht, eine gespeicherte Prozedur erstellen, die nimmt ein array als parameter und in der WHILE-Schleife durchläuft das array und fügt die chars in eine Tabelle ein.
Zum Beispiel wenn ich ein array ['a','b','c'] ich würde wollen, diesen in meine gespeicherten Prozedur und die Zeichen 'a' , 'b' und 'c' werden in eine Tabelle.
Meine SP erstellt wurde, aber ich habe Probleme, wenn ich versuche zu nennen, meine Vorgehensweise. Kann jemand mir gegenüber wie ein array übergeben? Meine Vorgehensweise ist wie folgt....
DROP PROCEDURE DB.LWRH_DYNAMIC_SP@
create type stringArray as VARCHAR(100) array[100]@
CREATE PROCEDURE DB.LWRH_SP
(
IN list stringArray
)
LANGUAGE SQL
BEGIN
DECLARE i, MAX INTEGER;
DECLARE c CHAR(1);
SET i = 0;
SET MAX = CARDINALITY(list);
WHILE i <= MAX DO
SET c = list[i];
INSERT INTO schema.test ("SERVICE TYPE")values (c);
END WHILE;
END@
CALL DB.LWRH_SP('')@
Dupliziert Frage? Lesen Sie diese : gewusst Wie: übergeben Sie ein array in eine SQL Server-gespeicherte Prozedur
Dies ist DB2, die in einem völlig anderen Produkt. Dinge wie die Unterstützung für array-Parametern ist nicht einheitlich.
Ich bin mit DB2 und ich wollen einfach nur zu rufen Sie die Prozedur mithilfe von SQL. Ich bin nicht mit C, Java oder einer anderen Sprache. Also, ich glaube nicht, dass dies ein Duplikat ist.
Ich habe es geschafft, eine Arbeit zu finden, um für dieses problem. Ich verwendet eine VARCHAR-wie die input-param und Durchlaufen jeden CHAR. Aber eine Antwort würde immer noch geschätzt werden. Danke.
Dies ist DB2, die in einem völlig anderen Produkt. Dinge wie die Unterstützung für array-Parametern ist nicht einheitlich.
Ich bin mit DB2 und ich wollen einfach nur zu rufen Sie die Prozedur mithilfe von SQL. Ich bin nicht mit C, Java oder einer anderen Sprache. Also, ich glaube nicht, dass dies ein Duplikat ist.
Ich habe es geschafft, eine Arbeit zu finden, um für dieses problem. Ich verwendet eine VARCHAR-wie die input-param und Durchlaufen jeden CHAR. Aber eine Antwort würde immer noch geschätzt werden. Danke.
InformationsquelleAutor LiamWilson94 | 2014-12-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden Sie die DB2-array-Konstruktor zum Aufruf einer stored procedure mit einem array eingegeben input-Parameter.
Ein Beispiel erstellen Sie ein array von Ganzzahlen, die Verwendung des array-Konstruktors:
Für die gespeicherte Prozedur Beispiel:
Aufrufen Sie können die oben stored procedure mit einem array von VARCHAR-Verwendung:
HINWEIS: meiner Erfahrung einige SQL-developer-tools (zB. DBArtisan) funktionieren möglicherweise nicht mit der oben genannten syntax von stored prodecure Anruf mit dem array-Konstruktor, aber es funktioniert definitiv mit der Linux-Kommandozeile db2-tool aka. DB2 UDB CLP.
InformationsquelleAutor mocha
Müssen Sie die Daten definieren geben Sie vor, und dann erstellen Sie eine variable zu übergeben, wie parameter.
Hier sehen Sie ein Beispiel einer Funktion erhält ein array als parameter. Hinweis: die array-Typ definiert wurde, bevor die Funktion. Das gleiche ist notwendig für gespeicherte Prozeduren.
Denken Sie daran, dass ein array wird im Gegensatz zu einem string (CHAR). Die arrays sind ein internes Objekt im DB2 -, und Sie müssen so definiert werden, Variablen, bevor Sie Sie verwenden. Strings können erstellt werden, wie du es getan hast: ". Sie sind jedoch zwei verschiedene Dinge, die in DB2.
InformationsquelleAutor AngocA