sql >> Database teknologi >  >> RDS >> Oracle

%ROWTYPE variabel fra tabelnavn

Du kan sandsynligvis ikke gøre dette (i hvert fald ikke nyttigt).

Du kunne konstruere en hel anonym PL/SQL-blok

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;

Men generelt, længe før du begynder at ty til dynamisk PL/SQL under runtime, vil du virkelig gerne træde et skridt tilbage og vurdere, om der ikke er en nemmere løsning på det problem, du har. Der er et vilkårligt antal rammer, for eksempel, der dynamisk genererer CRUD-pakker for hver af dine tabeller. Det bruger dynamisk PL/SQL, men det gør det kun én gang som en del af en build i stedet for at gøre det hver gang, du vil opdatere data.



  1. SQL Server - Transponer rækker til kolonner

  2. Vælg min. tre værdier af en post i en anden tabel med en JOIN

  3. SQL:Trækker 1 dag fra en tidsstempeldato

  4. Standardafvigelseskommando i SQL