Stored Procedure Function Oracle PLSQL

SQL>
SQL> CREATE TABLE source (
  2    key NUMBER(5),
  3    value VARCHAR2(50)  );
Table created.
SQL>
SQL>
SQL> CREATE TABLE destination (
  2    key NUMBER(5),
  3    value VARCHAR2(50)  );
Table created.
SQL>
SQL>
SQL>
SQL>
SQL>
SQL> CREATE OR REPLACE PROCEDURE CopyTables AS
  2    v_Key   source.key%TYPE;
  3    v_Value source.value%TYPE;
  4
  5    CURSOR c_AllData IS
  6      SELECT *
  7        FROM source;
  8  BEGIN
  9    OPEN c_AllData;
 10
 11    LOOP
 12      FETCH c_AllData INTO v_Key, v_Value;
 13      EXIT WHEN c_AllData%NOTFOUND;
 14
 15      INSERT INTO destination (key, value)
 16        VALUES (v_Key, TO_NUMBER(v_Value));
 17    END LOOP;
 18
 19    CLOSE c_AllData;
 20  END CopyTables;
 21  /
Procedure created.
SQL>
SQL> show error
No errors.
SQL>
SQL> drop table source;
Table dropped.
SQL>
SQL> drop table destination;
Table dropped.
SQL>
SQL>