8 Stimmen

Wie erhalte ich den Count(*)-Wert in einer lokalen temporären Variable in dynamischem Sql (ORACLE PLSQL)?

Ich möchte eine count(*) Wert in dynamischer plsql-Anweisung. Wir können statische stmt als schreiben:

select count(*) into tmp_cnt from table_info where nbr_entry='0123456789';

aber wie bekommt man tmp_cnt Wert beim Schreiben des dynamischen Sql-Stamms? oder eine andere Möglichkeit, den count(*) Wert in tmp_cnt variabel?

11voto

Miguel Punkte 111

Vielleicht eine andere Oracle-Version, aber bei mir hat es funktioniert:

...
execute immediate 'select count(*) from ' || p_table_name into l_count;
...

9voto

Codo Punkte 70076

Sie können es mit EXECUTE IMMEDIATE erreichen ... ZURÜCKKEHREN IN:

function count_rows(p_table_name varchar2)
  return number
is
  l_count number;
begin
  execute immediate 'select count(*) from ' || p_table_name into l_count;
  return l_count;
end count_rows;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X