今天写了一个例子来测试to_date,谁知问题就随之产生了,这个问题让我郁闷了半天最后还是解决了,见代码
SET SERVEROUTPUT
ON
DECLARE
v_date DATE := TO_DATE( '&sv_user_date', 'DD-MON-YYYY');
v_day varchar2(15);
BEGIN
v_day := RTRIM(TO_CHAR(v_date, 'DAY'));
if v_day in ( 'SATURDAY', 'SUNDAY') then
DBMS_OUTPUT.PUT_LINE(v_date|| 'falls on weekend');
end if;
---control resumes here
DBMS_OUTPUT.PUT_LINE( 'Done...');
END;
DECLARE
v_date DATE := TO_DATE( '&sv_user_date', 'DD-MON-YYYY');
v_day varchar2(15);
BEGIN
v_day := RTRIM(TO_CHAR(v_date, 'DAY'));
if v_day in ( 'SATURDAY', 'SUNDAY') then
DBMS_OUTPUT.PUT_LINE(v_date|| 'falls on weekend');
end if;
---control resumes here
DBMS_OUTPUT.PUT_LINE( 'Done...');
END;
运行后提示输入指定格式的日期,于是我就输入
10-JAN-2010
确定后报错,说是无效的月份,我当时还以是输错了呢,结果再输一遍还是这个错,再输还错,找了半天不知道是哪错了,最后想到是不是和系统的语言有关呢,于是输入
10-1月-2010
转载于:https://blog.51cto.com/sucre/365594