count(*)
動的 plsql ステートメントで値を取得したい。static stmt は次のように記述できます。
select count(*) into tmp_cnt from table_info where nbr_entry='0123456789';
tmp_cnt
しかし、動的SQL文を書きながら値を取得する方法は? または変数にcount(*)
値を取得する他の方法はありますか?tmp_cnt
count(*)
動的 plsql ステートメントで値を取得したい。static stmt は次のように記述できます。
select count(*) into tmp_cnt from table_info where nbr_entry='0123456789';
tmp_cnt
しかし、動的SQL文を書きながら値を取得する方法は? または変数にcount(*)
値を取得する他の方法はありますか?tmp_cnt
オラクルのバージョンが異なる可能性がありますが、私にとってうまくいったのは次のとおりです。
...
execute immediate 'select count(*) from ' || p_table_name into l_count;
...
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;