Ха, хороший. Это потому, что && заменяет переменную на месте, поэтому ваш скрипт становится:
declare
v_dateInput VARCHAR(10);
v_dates DATE;
begin
v_dateInput := 03-03-1990;
v_dates := to_date(v_dateInput,'dd-mm-yyyy');
DBMS_OUTPUT.put_line(v_dates);
end;
Обратите внимание на отсутствие кавычек. v_dateInput, по сути, равен -1990, потому что oracle вычисляет числовое значение 03 - 03 - 1990. Конечно, это не работает с данной строкой формата.
Чтобы исправить это, вам нужно
v_dateInput := '&&dates';