stored procedure
を作成するときに、日付のこれらの変数をチェックしてif statement
の変数に変換しようとすると、変数のチェックに問題があります。これは、sysdateのストアドプロシージャと同じ宣言セクションのパラメータですか?
コードこの
create or replace procedure test
as
dan nvarchar2(2) :='1';
mesec nvarchar2(2) := '1';
godina nvarchar2(4) := '2016';
begin
if to_date(dan||mesec||godina,'dd-mon-yy') != sysdate
then
for dan in 1..12 loop
dbms_output.put_line(dan);
end loop;
end if;
end;
のようにこれらの3つの変数は、パラメータとしてTO_DATE関数によって必要とされるもの、NVARCHAR2です。しかし、時に次のエラーに、私はそれを修正する方法がわからない
ORA-01861: literal does not match format string
を与え、これまでにこれらの変数を変換しよう、とsysdate
にそれが等しいチェック!ここで
のように見えるのでしょうか? 「yyyymmdd」? –
sysdateを変数と同じ形式の文字列に変換できますか? – MarkD
使用しているフォーマット文字列は、曜日と月の2桁( '01と01')を必要とします。さらに、 'sysdate'はdateとtime **を返しますので、あなたの' IF'条件はあなたが思うように動作しないかもしれません。 –