(перенесено из предыдущего поста) - извините, если это воспринимается как повторение!
Всем привет,
Просто возникают некоторые проблемы с вычислениями даты и вычитанием даты из функции.
Я запутался с типами данных, которые я должен использовать, например, когда мне нужно преобразовать дату в _char. Я не уверен, иметь ли тип возвращаемого значения как varchar2 или date?
Вот функция, которая получает car_id, просматривает таблицу для этого автомобиля, извлекает дату прибытия автомобилей, сохраняет ее в переменной даты
делает то же самое с датой отъезда.
Затем преобразует обе даты в _char, выполняет вычитание и возвращает его в varchar2.
Когда я вызываю функцию, она вводит car_id в качестве параметра,
затем сохраненный возвращенный результат в переменной varchar для вывода в dbms.
например.
v_result := get_duration('0001')
вот функция:
DROP FUNCTION get_duration;
CREATE FUNCTION get_duration (p_car_id number)
RETURN varchar2 is
v_arrive date;
v_depart date
v_duration varchar2(25); --not too sure about this variable choice
begin
select arrival, departure
into v_arrive, v_depart
from car_info
where car_id = p_car_id;
v_duration := to_char(v_depart, 'dd-mon-yyyy hh24:mi:ss') - to_char(v_arrive, 'dd-mon-yyyy hh24:mi:ss')
return v_duration;
END;
/
Как вы можете видеть, я пытаюсь поместить время начала и окончания таблицы в переменные, затем минус дата окончания от даты начала.
Функция компилируется, но с предупреждением, и когда я вызываю функцию, появляется ошибка: get_duration недействителен
Любой вклад в это будет получен,
Извините, если сообщение относительно большое!
С уважением,
Даррен