Declare Table-Variablen in Oracle-Prozedur

Bin ich ein heck einer Zeit versucht zu finden, ein Beispiel für diesen Vorgang. Ich habe eine Prozedur, und als Teil dieser Prozedur, die ich speichern möchten, die die Ergebnisse einer SELECT-Anweisung so, dass ich gegen das gesetzt, und dann als Referenz verwenden, aktualisieren Sie die original-Datensätze, wenn es alle getan.

Die Schwierigkeit, die ich habe ist in der Deklaration der temporären Tabelle variable. Hier ist ein Beispiel von, was ich versuche zu tun:

PROCEDURE my_procedure
IS
  output_text clob;
  temp_table IS TABLE OF MY_TABLE%ROWTYPE; -- Error on this line
BEGIN
  SELECT * BULK COLLECT INTO temp_table FROM MY_TABLE WHERE SOME_DATE IS NULL;

  -- Correlate results into the clob for sending to email (working)
  -- Set the SOME_DATE value of the original record set where record is in temp_table

Bekomme ich eine Fehlermeldung auf dem zweiten vorkommen von IS, sagen, dass es ein unerwartetes symbol. Dies lässt mich vermuten, dass meine Tabelle die variable-Deklaration ist entweder falsch oder an der falschen Stelle. Ich habe versucht, indem es in eine DECLARE block nach BEGIN, aber ich bekomme nur ein weiterer Fehler.

Wo soll dieser Erklärung gehen? Alternativ, wenn es eine bessere Lösung, die ich nehme zu!

InformationsquelleAutor Eraph | 2015-09-22
Schreibe einen Kommentar