Nehmen wir an, ich habe eine Funktion, in der ich mehrere Aktionen ausführen muss, die alle von den Ergebnissen einer Abfrage abhängen. Alles, was ich gefunden habe, zeigt an, dass ich eine Temperaturtabelle außerhalb des Verfahrens definieren muss, was ich nicht tun möchte.
Ich würde gerne so etwas wie Folgendes machen:
create or replace function f_example(
a_input in number
)
return varchar2 is
begin
create local temporary table tempIDs
(
testID number(6, 0)
, testValue number(8,0)
);
//select data from tableFoo that will be overwritten by a_input into tempIDs
//update data in tableFoo with a_input & store old data in another tableFoo field
end f_example;
Diese Syntax funktioniert nicht. Oracle erlaubt nicht zu, in einer Funktion "Erstellen" zu erstellen.
Ich bin nicht wirklich ein Datenbankprogrammierer - ich bin es gewohnt, in C# und Java zu arbeiten. In diesem Fall würde ich meine Werte in einem örtlichen Array (oder was auch immer) speichern, das aus dem Spielraum ausgeht, wenn die Methode beendet ist. Gibt es in Oracle SQL zu Recht keine Möglichkeit, so etwas zu tun?