Das sind ja gleich eine ganze Menge Fragen. Also:
Das ich die Tabelle "eigentlich" noch nicht an der Stelle droppen kann, habe ich mir schon gedacht. Das Problem ist, die Prozedur wird von einer ASP.NET-Webanwendung aufgerufen, und wann die die Verbindung kappt und den Cursor schließt, ist mir noch nicht so ganz klar, da die Ereignissteuerung hier auch nicht ganz einfach ist. Damit das Ganze überhaupt funktioniert, gibt es innerhalb der Prozedur auch einen SQLEXCEPTION Handler. Das DROP TABLE habe ich auch schon weggelassen, ändert aber nichts an dem ursprünglichen Fehler.
Der CREATE TABLE kommt direkt nach dem BEGIN. Für die Erzeugung der Prozedur erstelle ich die Tabelle in QTEMP unmittelbar vor dem RUNSQLSTM, damit der Compiler die Datei findet.
In QTEMP packe ich das Ganze (=meine Arbeitsdateien), da ich nicht verhindern kann/will, daß die Prozedur parallel von mehreren Usern aufgerufen wird, und ich dadurch in getrennten Arbeitsbereichen arbeite. Wenn ich eine echte physische Tabelle nehme, müsste ich die vorher clearen, und würde damit u. U. das frisch erstellte Ergebnis eines anderen Users zerschießen.
Das kann aber doch alles nicht die Ursache dafür sein, daß die Prozedur nach Beendigung der interaktiven Session, die sie erstellt hat, verschwindet ? Oder ist QTEMP hier wirklich das Problem ? Was wäre denn eine Alternative an der Stelle ?