8

count(*)動的 plsql ステートメントで値を取得したい。static stmt は次のように記述できます。

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

tmp_cntしかし、動的SQL文を書きながら値を取得する方法は? または変数にcount(*)値を取得する他の方法はありますか?tmp_cnt

4

2 に答える 2

11

オラクルのバージョンが異なる可能性がありますが、私にとってうまくいったのは次のとおりです。

...
execute immediate 'select count(*) from ' || p_table_name into l_count;
...
于 2015-01-30T14:22:33.853 に答える
9

EXECUTE IMMEDIATE ... RETURNING INTO でそれを達成できます:

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;
于 2012-07-23T07:46:16.517 に答える