-1

Oracleに日付を取得させようとすると、それを年のみに設定し、事前にデータベースに挿入または更新された値と比較します。これは私がこれまでに試したことです。しかし、私は立ち往生しているようですどんな援助も素晴らしいでしょう、ありがとう

create or replace
TRIGGER CHECK_YEAR_DIFF
BEFORE INSERT OR UPDATE OF YEAROFPERSON ON PERSON 
FOR EACH ROW 

Currentdate Date; 
Playeryrborn_Var Integer;

Begin

Currentdate := TRUNC(Sysdate,'YYYY');
YEAROFPERSON_var := new.YEAROFPERSON;

  IF (currentDate - YEAROFPERSON_var <= 40) AND (currentDate - YEAROFPERSON_var => 16) THEN 

  dbms_Output.Put_Line('Year of Birth Updated Successfully');

  ELSE

  dbms_output.put_line('Year of Birth Failed to Successfully Update');

  END IF;

END;
4

2 に答える 2

0

次の行を変更する必要があると思います:currentDate --YEAROFPERSON_var <= 40

に:

cast(to_char(sysdate, 'YYYY') as int) - YearOfPerson_Var <= 40
于 2012-05-22T13:52:32.717 に答える
0

IF(currentDate-YEAROFPERSON_var <= 40)AND(currentDate-YEAROFPERSON_var => 16)

次のように置き換えます

IF(currentDate-YEAROFPERSON_var <= 40)AND(currentDate-YEAROFPERSON_var> = 16)

于 2012-05-23T09:54:01.230 に答える