Oracle
 sql >> Datenbank >  >> RDS >> Oracle

%ROWTYPE-Variable aus Tabellenname

Sie können dies wahrscheinlich nicht tun (zumindest nicht sinnvoll).

Sie könnten einen ganzen anonymen PL/SQL-Block erstellen

v_plsql := 'DECLARE ' ||
           '  l_row ' || p_table_name || '%rowtype; ' ||
           'BEGIN ' ||
           '  SELECT * ' ||
           '    INTO l_row ' ||
           '    FROM ' || p_table_name ||
           '    WHERE id = ' || p_some_old_value || ';' ||
           ...
EXECUTE IMMEDIATE v_plsql;

Im Allgemeinen sollten Sie jedoch, lange bevor Sie zur Laufzeit auf dynamisches PL/SQL zurückgreifen, wirklich einen Schritt zurücktreten und prüfen, ob es nicht eine einfachere Lösung für Ihr Problem gibt. Es gibt beispielsweise eine beliebige Anzahl von Frameworks, die CRUD-Pakete für jede Ihrer Tabellen dynamisch generieren. Dabei wird dynamisches PL/SQL verwendet, aber nur einmal als Teil eines Builds und nicht jedes Mal, wenn Sie Daten aktualisieren möchten.