2017-10-10 32 views
0
declare 
    v_date varchar2(15); 
begin 
    v_date := to_char(sysdate, 'DAY'); 
    if upper(v_date) = to_char('TUESDAY') then 
    dbms_output.put_line('Today is Tuesday'); 
    else 
    dbms_output.put_line('Today is not tuesday'|| upper(v_date)); 
    end if ; 
end; 
+1

请告诉我你的问题?语法错误?总是在做else子句?... – Twelfth

+0

试试这个:v_date:= trim(to_char(sysdate,'DAY')); – tbone

回答

1

请修修你从白天的TO_CHAR获得的价值,那么你应该得到正确的结果

declare 
    v_date varchar2(15); 
begin 
    v_date := to_char(sysdate, 'DAY'); 
    if trim(v_date) = 'TUESDAY' then 
    dbms_output.put_line('Today is Tuesday'); 
    else 
    dbms_output.put_line('Today is not tuesday '|| v_date); 
    end if ; 
end; 
+0

奇怪'TRIM'是必需的 –

+0

我donno ........为什么空白填充? –

+0

其实我们在从日期取得日值后得到空间,我认为to_char的日期是有一些固定的长度,如char,这就是为什么它添加空格来实现其长度 – Rams