sql >> Databasteknik >  >> RDS >> Oracle

skickar in tabellnamnet som plsql-parameter

Du kan använda dynamisk SQL:

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;

Det finns också ett indirekt sätt att få antal rader (med systemvyer):

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;

Det andra sättet fungerar bara om du hade samlat statistik på tabellen innan du anropade den här funktionen.




  1. I SQL / MySQL, vad är skillnaden mellan ON och WHERE i en join-sats?

  2. Hur fungerar contains() i PL-SQL?

  3. Vad är Oracles datumformateringsmask för tidszoner?

  4. php include-felet hittar inte sökvägen