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;
InformationsquelleAutor merp | 2014-04-03
Schreibe einen Kommentar