ДАТА не имеет определенного формата, ДАТА - это ДАТА.При хранении в столбце базы данных значения даты включают время дня в секундах с полуночи, а переменная DATE имеет то же самое, только если в какой-то момент вы показываете, что переменная отформатирована.PL / SQL может неявно преобразовывать тип данных значения, например, может преобразовывать значение CHAR '02 -JUN-92 'в значение DATE ... но я не рекомендую полагаться на этот неявный разговор.Я всегда использую явное преобразование.Чтобы узнать больше об этой теме, вы можете прочитать это: http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28370/datatypes.htm#i9118
В вашем случае, если вы хотите отформатировать DATE для записи чего-либо или для отображения в вашем интерфейсе пользователя или в другом формате, вам нужночтобы привязать его к переменной varchar, как сказал Джастин, что-то вроде этого:
....
v_generated_run_date DATE;
v_var_date VARCHAR2(30);
BEGIN -- generate sysdate if required
IF (i_RunDate is null)
THEN
v_var_date:=TO_CHAR(sysdate, 'MM/DD/YYYY HH12:MI:SS AM');
ELSE
v_var_date:=TO_CHAR(i_RunDate,'MM/DD/YYYY HH12:MI:SS AM');
END IF;
pkgschedule.createschedule (v_var_date);
commit;
END runschedule;
END
Ваша процедура createchedule в этом случае будет иметь параметр varchar2 ...