vquery:='select (count(*)/'||total_med||')*100 from '||tblextract||' where datasource is not null and upper(datasource) like ''%MEDICAL%'' '; BEGIN EXECUTE IMMEDIATE vquery INTO validpercent; EXCEPTION WHEN OTHERS THEN NULL; END; Dbms_Output.put_line(validpercent); begin execute immediate 'insert into '|| tblname ||' ( sno, claimsextract, description, test, measure, breakdown, result, valid, blank, unknown, remarks ) select ''3'', ''datasource'', ''data vendor'', ''number of data sources'', ''distinct count'', ''med'', (select count(distinct datasource) from '||tblextract||' where upper(datasource) like ''%MEDICAL%'' ) as result, '||validpercent||'||''%'' AS VALID, 100-'||validpercent||'||''%'' AS BLANK, ''n/a'' as unknown, ''valid-datasource populated/blank- as blank in a row '' as remarks from dual'; commit; end;