我想創建一個觸發器,將加入的屬性設置爲當前年份。這是我的工作:SQL觸發器,將年份設置爲當前年份
CREATE OR REPLACE TRIGGER foo2
BEFORE INSERT ON memberof
FOR EACH ROW
BEGIN :new.joined := 2012;
END;
我想將2012年更改爲下面的代碼,但不斷收到編譯器錯誤。什麼是適當的語法來完成這個?
select extract(year from sysdate) from dual
我想創建一個觸發器,將加入的屬性設置爲當前年份。這是我的工作:SQL觸發器,將年份設置爲當前年份
CREATE OR REPLACE TRIGGER foo2
BEFORE INSERT ON memberof
FOR EACH ROW
BEGIN :new.joined := 2012;
END;
我想將2012年更改爲下面的代碼,但不斷收到編譯器錯誤。什麼是適當的語法來完成這個?
select extract(year from sysdate) from dual
這應該做的伎倆:
CREATE OR REPLACE TRIGGER foo2
BEFORE INSERT ON memberof
FOR EACH ROW
BEGIN
:new.joined := to_char(sysdate,'YYYY');
END;
欲瞭解更多信息,請瀏覽:http://docs.oracle.com/cd/B19306_01/server.102/b14200/sql_elements004.htm
這裏:http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions183.htm
BTW OMG小馬是正確的這通常應該用做默認值可以採取像
to_char(sysdate,'YYYY')
。
更新了答案,希望更清楚。 –
加入是一個數字(4,0)數據類型,我得到PL/SQL:數字或值錯誤:字符到數字轉換錯誤當我使用此 – Steve
你有to_char參數錯誤的方式。 –
哪個DBMS是這樣的?甲骨文?如果是的話 - 請標記。 – 2012-05-29 04:32:23
@WillHughes是oracle,對不起 – Steve
爲什麼?這是DEFAULT約束的意思,不是觸發器 –