sql >> Databáze >  >> RDS >> Oracle

Proměnná %ROWTYPE z názvu tabulky

Pravděpodobně to nemůžete udělat (alespoň ne užitečně).

Můžete vytvořit celý anonymní blok PL/SQL

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;

Obecně však platí, že dlouho předtím, než se za běhu začnete uchylovat k dynamickému PL/SQL, opravdu chcete udělat krok zpět a posoudit, zda neexistuje jednodušší řešení jakéhokoli problému, který máte. Existuje například libovolný počet frameworků, které dynamicky generují balíčky CRUD pro každou z vašich tabulek. Používá dynamické PL/SQL, ale dělá to pouze jednou jako součást sestavení, nikoli pokaždé, když chcete aktualizovat data.



  1. Způsoby implementace verzování dat v PostreSQL

  2. Podporuje jarní spouštěcí aplikace OpenJDK

  3. Analýza časových razítek - udělat to v MySQL nebo v PHP?

  4. Jak učinit index nepoužitelným a poté jej znovu vytvořit v indexu