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!
- Dieser blog-Beitrag war hilfreich für mich: imankur.blogspot.com/2013/08/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
oder
type
Schlüsselwort), bevor Sie eine variable dieses Typs deklariert werden kann. Jedoch, jetzt ich habe ein problem beim Versuch, wählen Sie aus der Tabelle die variable - Tabelle oder view nicht vorhanden. Gibt es irgendein trick, den ich bin fehlt?Ich hatte ein ähnliches problem und fand dieses:
Durch die Auswahl von Werten aus einer Oracle-Tabelle Variable /Array?
Der globalen temporären Tabelle kann verwendet werden wie eine normale Tabelle, aber Ihr Inhalt ist nur vorübergehend (gelöscht am Ende der Sitzung/Transaktion) und jede session hat seine eigene Tabelle Inhalt.
Wenn Sie nicht brauchen, dynamische SQL-dies kann verwendet werden, als gute Lösung:
Die einzigen Nachteile sind, meiner Meinung nach, dass du anderen Tabelle, dass die temporäre Tabelle ist nicht dynamisch.