Gewusst wie: einfügen in eine Tabelle mit gespeicherten Prozeduren in DB2 mit SQL?

Wollte ich wissen, wie das einfügen in eine Tabelle mit gespeicherten Prozeduren in DB2 mit SQL.
Ich habe eine Tabelle erstellt wie folgt:

create table ADCLIBT.Itest
(ITNBR CHAR(15) CCSID 65535 NOT NULL DEFAULT '');

Diese Tabelle enthält eine Liste der Elemente. Mit dieser Liste möchte ich einfügen, verschiedene andere Felder in eine andere Tabelle. Aber, nur zum Beispiel Willen, lassen Sie uns sagen, ich will nur zu legen Sie diese Werte nacheinander mit der Cursor.
Ich habe geschrieben die gespeicherte Prozedur wie folgt:

create procedure ADCLIBT.itest1()
    LANGUAGE SQL
BEGIN
    DECLARE itemno char(15);
    DECLARE END_TABLE INT DEFAULT 0;
    DECLARE not_found CONDITION FOR SQLSTATE '20000';
    DECLARE c CURSOR FOR 
        select ITNBR from ADCLIBT.ITEMAT;
    DECLARE CONTINUE HANDLER FOR not_found
    SET END_TABLE = 1;

    open c;
    fetch from c into itemno;
    WHILE END_TABLE = 0 DO
        insert into ADCLIBT.ITEST
                (ITNBR)
                values
        (select a.ITNBR from ADCLIBT.ITEMAT a where ITNBR=itemno GROUP BY a.ITNBR);
    END WHILE;
    Close c;
END;

Dies gibt mir eine unendliche Schleife. Kann jemand mir bitte sagen, wie verhindere ich, dass die endlos-Schleife und legen Sie diese Aufzeichnungen. Ich möchte den cursor verwenden, weil ich will, um die weitere Verwendung itemno vergleichen und erhalten Ergebnisse.

InformationsquelleAutor racerxnox | 2013-02-12
Schreibe einen Kommentar