Oracle Funktionen: Wie übergibt man den Namen einer Tabelle als parameter, und verwenden Sie einen cursor als Ergebnis einen Tabellennamen?
Ich brauche Hilfe mit diesem oracle-Funktion, die ich versuche zu erstellen.
Im Grunde, was ich will zu tun ist, übergeben Sie den Namen einer Tabelle, und kehren Sie den maximalen Wert der Spalte, die die variable table-name + '_ID'
Also würde es so Aussehen (tableName)_ID
Hier ist, was ich versucht habe (kann ich Aber nicht, dass es auch funktioniert):
CREATE OR REPLACE FUNCTION RETURN_ID(tableName IN varchar2)
return int
IS
curResult varchar2;
cursor cur1 is
SELECT column_name
FROM all_tab_cols
WHERE table_name = tableName
AND column_name like '%_ID';
BEGIN
OPEN cur1;
FETCH cur1 INTO curResult;
CLOSE cur1;
SELECT MAX(curResult) AS MaxID
FROM tableName;
RETURN maxID;
END RETURN_ID;
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ersetzen
mit
Wann immer Sie wollen, um dynamisch ändern von Tabellen-oder Spaltennamen in einer select-Anweisung, gibt es fast immer keine andere Möglichkeit als der Rückgriff auf die
execute immediate
Aussagen.Müssten Sie dynamisches SQL verwenden. So etwas wie