Hi, Are we able to loop through dynamic sql? code below doesn't work. Oracle cursor doesn't support dynamic sql? If that's the case, how to achieve what I am trying to do as below. DECLARE CURSOR c_stmt IS SELECT '''ALTER TABLE '||table_name||' MODIFY '|| column_name ||' VARCHAR2('||data_length||' CHAR)''' ddl_stmt FROM user_tab_columns WHERE data_type = 'VARCHAR2' AND table_name = 'AA_TEST' AND char_used = 'B'; r_emp c_stmt%rowtype; BEGIN OPEN c_stmt; LOOP FETCH c_stmt INTO r_emp; EXIT WHEN c_stmt%notfound; dbms_output.put_line(r_emp.ddl_stmt); EXECUTE IMMEDIATE r_emp.ddl_stmt; END LOOP; CLOSE c_stmt; END; / show error