2012-05-22 162 views
-1

试图让甲骨文获得一个约会只将其设置为一年,并比较手 之前插入或更新到我的数据库中的值这是我到目前为止已经试过。但我似乎被卡住 任何帮助将是巨大的,谢谢ORACLE SQL比较年份范围触发

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; 
+1

什么问题? – kmkaplan

+0

它似乎没有工作。我不知道在哪里出了问题:S –

+1

@MattLaw:“似乎没有工作”是不是很描述。 – Quassnoi

回答

0

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

替换为以下

IF(的currentdate - YEAROFPERSON_var < = 40)AND(的currentdate - YEAROFPERSON_var> = 16)

+0

干杯@Sribharath雷迪Peketi –

0

我认为你需要更改线路: 的currentdate - YEAROFPERSON_var < = 40

要:

cast(to_char(sysdate, 'YYYY') as int) - YearOfPerson_Var <= 40 
+0

非常感谢!只需要修复我的第二个条件,它会很甜蜜! –

+0

使用'提取物(一年SYSDATE)'会更容易一点,我认为 –