当确定日期在一周中的特定日期时,我试图进入 PLSQL 中的 if 条件。
DECLARE
v_gebDatum CONSTANT DATE := to_date('21-01-1995', 'dd-MM-yyyy');
v_mathDatum DATE := v_gebDatum;
v_huidigeDag VARCHAR2(20);
v_teller number := 0;
BEGIN
WHILE to_char(v_mathDatum, 'yyyy') < to_char(sysdate, 'yyyy')
LOOP
v_mathDatum := add_months(v_mathDatum, 12);
v_huidigeDag := to_char(v_mathDatum, 'DAY');
dbms_output.put_line(v_huidigeDag);
IF v_huidigeDag IN('ZATERDAG', 'ZONDAG')
THEN
dbms_output.put_line(v_mathDatum);
END IF;
END LOOP;
END;
问题是我无法让它工作。打印 v_huidigeDag 时,它在某些打印行中清楚地具有值“ZATERDAG”和“ZONDAG”。
看来,由于某种原因,当我打印日期名称的值时,程序会在其中添加空格。我猜它需要我的语言环境中最长的日期名称('DONDERSDAG')的字符长度。并且所有字符少于它添加空格的字符。所以 zaterdag 变为 = 'ZATERDAG' 并且 zondag 变为 = 'ZONDAG'。现在它正在工作,但有人知道防止这种情况的简单方法吗?