2017-10-10 78 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