You need to check the logic of your code - I'm not sure I really want to know what you're trying to do
This works:
Code:
Declare
TABLE_NAME_VAR VARCHAR2(20) := 'EMP';
COLUMN_NAME_VAR VARCHAR2(20) := 'ENAME';
AGGREGATION_TYPE_VAR VARCHAR2(20) := 'COUNT';
AGGR_COLUMN_VAR VARCHAR2(20) := 'DEPTNO';
CURRENT_EXET_NUMBER NUMBER;
SQL_STMT VARCHAR2(500);
BEGIN
CURRENT_EXET_NUMBER:=0;
BEGIN
SQL_STMT:='SELECT '||AGGREGATION_TYPE_VAR||'('||COLUMN_NAME_VAR||'),'||AGGR_COLUMN_VAR||' FROM '||TABLE_NAME_VAR||
' WHERE '||AGGR_COLUMN_VAR||'=10 GROUP BY '||AGGR_COLUMN_VAR;
EXECUTE IMMEDIATE SQL_STMT INTO CURRENT_EXET_NUMBER;
END;
dbms_output.put_line(to_char(CURRENT_EXET_NUMBER));
END;
/
"The power of instruction is seldom of much efficacy except in those happy dispositions where it is almost superfluous" - Gibbon, quoted by R.P.Feynman