Ich brauche eine kleine gespeicherte Prozedur, um die folgende Logik auszuführen?Gespeicherte Prozedur zum Zurückgeben einer Liste von Sequenz-IDs
procedure_name (seq_name IN varchar2 (50), Block Zählung IN int, return_ids OUT)
Schleife von 1
return_ids zu Block Zählung: = wählen 'seq_name' || .NEXTVAL von dual;
Endschleife
return return_ids
Im Grunde, was ich eine gespeicherte Prozedur tun möchte, ist, die mich in einer Sequenz Namen übergeben können, wie viele IDs ich brauche und wieder zu mir die von IDs aufgelistet erzeugt, dass ich Verwenden Sie in JAVA. Der Grund, dies für mich zu tun, besteht darin, eine Liste von IDs zurückzugeben, die ich in JAVA verwenden kann, und niemand sonst verwendet diese Sequenz-IDs. Wo sie später in anderen Masseneinsätzen verwendet werden. Im Wesentlichen reservieren Sie einen Block von Sequenz-IDs.
Nun, wenn ich DBA-Unterstützung hätte, würde ich viel lieber einfach Arrays in eine Prozedur übergeben und sie alle Einfüge auf der DB-Seite behandeln lassen. Aber da ich nicht die Unterstützung habe ... – stuckAtWork
Ich versuche, eine große Anzahl von Datensätzen in verwandten hierarchischen Tabellen einzufügen. Da ich IDs aus der Top-Level-Tabelle brauche, kann ich sie in die Second-Level-Tabelle einfügen und so weiter zur dritten und vierten Level-Tabelle und so weiter. Ich möchte auch nicht JDBC verwenden, um die DB zu rufen, um die ID jedes Mal zu erhalten, während ich einfüge. Ich möchte nur einen Block von SEQ_IDs holen, den ich mit verschiedenen Arrays füllen kann, damit ich dann die Arrays in Batch-Einfügungen verwenden kann. – stuckAtWork
Ich bin verwirrt von Ihrem Kommentar über keine DBA-Unterstützung. Sie können eine gespeicherte Prozedur schreiben, um IDs zu reservieren, aber Sie können keine gespeicherte Prozedur schreiben, um die Einfügungen in jede Tabelle mit den richtigen IDs auszuführen. –