Oracle
 sql >> Baza danych >  >> RDS >> Oracle

%ROWTYPE zmienna z nazwy tabeli

Prawdopodobnie nie możesz tego zrobić (przynajmniej nie pożytecznie).

Możesz skonstruować cały anonimowy 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;

Ogólnie rzecz biorąc, na długo zanim zaczniesz uciekać się do dynamicznego PL/SQL w czasie wykonywania, naprawdę chcesz zrobić krok wstecz i ocenić, czy nie ma łatwiejszego rozwiązania każdego problemu. Istnieje na przykład dowolna liczba frameworków, które dynamicznie generują pakiety CRUD dla każdej z Twoich tabel. To używa dynamicznego PL/SQL, ale robi to tylko raz jako część kompilacji, a nie za każdym razem, gdy chcesz zaktualizować dane.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Maskowanie liczb i nls_parameter

  2. Aktualizacja kolumny na podstawie poprzedniego rekordu

  3. Co zrobić, jeśli podczas korzystania ze sterownika Easysoft Oracle ODBC w wersji OCI nie można otworzyć pliku obiektu współdzielonego?

  4. Powtarzające się wartości w kolumnie

  5. Wskaż ADO.Net DataSet do różnych baz danych w czasie wykonywania?