ORA-06512
indica una excepción no controlada en su procedimiento. No tiene manejo de errores en su código, por lo que es razonable.
Por supuesto, debido a que no tiene manejo de errores, es bastante difícil para cualquiera saber cuál es el error. Lo más probable es que sean datos:no tiene ningún registro en A1 where ID=1
(es decir, la excepción NO_DATA_FOUND) o tiene más de uno de esos registros (es decir, la excepción TOO_MANY_ROWS).
ODP tiene una clase para manejar excepciones. Más información .