DECLARE handle INTEGER; stmt varchar2(256); discount parts.price%type := 0.8; part_number parts.pno%type := 10506; nrows INTEGER; BEGIN stmt := 'update parts set price = price * :fract' || ' where pno = :pnum'; handle := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(handle,stmt,DBMS_SQL.V7); DBMS_SQL.BIND_VARIABLE(handle,':fract',discount); DBMS_SQL.BIND_VARIABLE(handle,':pnum',part_number); nrows := DBMS_SQL.EXECUTE(handle); dbms_output.put_line('Number of rows updated = ' || nrows); DBMS_SQL.CLOSE_CURSOR(handle); EXCEPTION WHEN OTHERS THEN DBMS_SQL.CLOSE_CURSOR(handle); END; / show errors