2011-07-28 63 views
1

插入時間戳我有這個程序希望通過程序在Oracle

PROCEDURE insertSample 
    (
    return_code_out OUT VARCHAR2, 
    return_msg_out OUT VARCHAR2, 
    sample_id_in IN table1.sample_id%TYPE, 
    name_in IN table1.name%TYPE, 
    address_in IN table1.address%TYPE 
) 
    IS 

    BEGIN 
    return_code_out := '0000'; 
    return_msg_out := 'OK'; 

    INSERT INTO table1 
    sample_id, name, address) 
    VALUES 
    (sample_id_in, name_in, address_in); 


    EXCEPTION 
    WHEN OTHERS 
    THEN 
     return_code_out := SQLCODE; 
     return_msg_out := SQLERRM; 


    END insertSample; 

我想table1中添加第4列像day_time,並在其中添加當天的時間戳..豪我可以做,在此過程中。 。謝謝

回答

2

假設你你已經(或增加)列於表的過程之外,即

ALTER TABLE table1 
    ADD(insert_timestamp TIMESTAMP); 

,你可以修改你的INSERT聲明是

INSERT INTO table1 
    sample_id, name, address, insert_timestamp) 
    VALUES 
    (sample_id_in, name_in, address_in, systimestamp); 

但是,一般來說,我強烈建議您不要從過程返回錯誤代碼和錯誤消息。如果你不能處理程序中的錯誤,你應該讓異常傳播給調用者。這是一種更可持續的編寫代碼的方法,而不是試圖確保每個程序的每個調用者始終正確地檢查返回代碼。

0

SYSDATE會給你當前的數據和時間。

,如果你有一個默認值添加列,你可以留下你的程序,因爲它是

ALTER TABLE table1 ADD when_created DATE DEFAULT SYSDATE;