特定の日付が週の特定の日にある場合、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 ' になります。今は動いていますが、誰かがこれを防ぐ簡単な方法を知っていますか?