Намного проще (и лучше) использовать переменные связывания:
declare
v_count number:=1;
v_conc_name varchar2(400);
v_val VARCHAR2(20):='vineet';
BEGIN
v_conc_name:='INT_AP_PAY_CONV';
EXECUTE IMMEDIATE 'UPDATE xxx_cnc_prg_details
SET
PARAMETER'||v_count||'=:bv_val
where CONCURRENT_PROGRAM_SHORT_NAME=:bv_conc_name'
USING v_val, v_conc_name;
end;
Также удобно использовать строковую переменную для хранения SQL.Затем вы можете использовать DBMS_OUTPUT.PUT_LINE для просмотра и проверки:
declare
v_count number:=1;
v_conc_name varchar2(400);
v_val VARCHAR2(20):='vineet';
v_sql LONG;
BEGIN
v_conc_name:='INT_AP_PAY_CONV';
v_sql := 'UPDATE xxx_cnc_prg_details
SET
PARAMETER'||v_count||'=:bv_val
where CONCURRENT_PROGRAM_SHORT_NAME=:bv_conc_name';
EXECUTE IMMEDIATE v_sql USING v_val, v_conc_name;
end;