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

Übergeben Sie den Tabellennamen als plsql-Parameter

Sie können dynamisches SQL verwenden:

create or replace function get_table_count (table_name IN varchar2)
  return number
is
  table_count number;
begin
  execute immediate 'select count(*) from ' || table_name into table_count;
  dbms_output.put_line(table_count);
  return table_count;
end;

Es gibt auch einen indirekten Weg, um die Anzahl der Zeilen zu erhalten (unter Verwendung von Systemansichten):

create or replace function get_table_count (table_name IN varchar2)
  return number
is
  table_count number;
begin
  select num_rows
    into table_count
    from user_tables
   where table_name = table_name;

  return table_count;
end;

Der zweite Weg funktioniert nur, wenn Sie vor dem Aufrufen dieser Funktion Statistiken über die Tabelle gesammelt haben.