2013-12-17 15 views
0

我在表中有一個名爲「EMP_GROUP」的列,其長度爲varchar2(30)。 我正在開發一個應用程序,其中有許多資源將數據發送到我們的表中。 所以我想限制與長度此列30 目前,當數據來自不同的資源,它將允許進入比長度更記錄30如何限制插入時的列長度?

請幫我在這裏,我怎麼會限制只此列允許輸入30個字符,如果數據長度超過30個,則不允許。

回答

1

您將始終得到ORA-12899: value too large for column,除非您在試圖插入之前截斷值

這樣做的方法是隱藏你的表後面的某種API - 例如,所有的插入都是通過一個過程調用來完成的;或者,您可以在表格上創建視圖並使用替代觸發器來處理截斷。

0

當您執行INSERT時,您可以只需SUBSTR您要插入的值。但是,正如Jeffrey所指出的那樣,您希望在您的應用程序中使用這些插入點的單個點;但是,您應該將這個概念應用於API背後的任何DML。使用Oracle數據庫中的PL/SQL作爲數據訪問層似乎是實現這一目標的合理方法。