--這個是判斷一個字符串是否為日期型的,如果異常就返回值0
10年積累的成都網站制作、成都網站建設經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有攀枝花免費網站建設讓你可以放心的選擇與我們合作。
CREATE
OR
REPLACE
FUNCTION
is_date(parameter
VARCHAR2)
RETURN
NUMBER
IS
val
DATE;
BEGIN
val
:=
TO_DATE(NVL(parameter,
'a'),
'yyyy-mm-dd
hh24:mi:ss');
RETURN
1;
EXCEPTION
WHEN
OTHERS
THEN
RETURN
0;
END;
今天在項目中遇到一個比較棘手的問題,需要用到觸發(fā)器。在編寫觸發(fā)器和調試過程中遇到下列問題,在此記錄一下:
由于之前寫的觸發(fā)器都能正常運行,就沒有涉及到觸發(fā)器的調試,今天發(fā)現觸發(fā)器沒起作用,需要調試,竟不知道在哪兒調試。在網上借鑒一些別人的經驗(),記錄一下。在PL/SQL中,觸發(fā)器的調試方法如下:
1,選中要調試的觸發(fā)器,右擊,然后勾選 Add debug information,只有勾選這個按鈕后,調試才能進入到斷點。
2,選中觸發(fā)器,點擊 Edit,到Edit 界面,在要調試的行號前面單擊,或者右鍵,添加斷點。
3,在菜單的新建中選擇“測試窗口”,打開一個如下塊,在begin和end中間添加能觸發(fā)觸發(fā)器的語句
4,按F9或者點擊調試菜單中的開始菜單,進入運行調試狀態(tài)(后面的紅框是單步進入)
5,點擊運行圖標跳到觸發(fā)器中斷點位置
6,鼠標放到變量上可以顯示變量值。
7,如果有異常,就彈出相關異常信息。
調試的時候發(fā)現new對象的日期格式為中文,而后面又需要yyyy-mm-dd 的格式來作為查詢條件。所以就在賦值的時候轉換一下。
在select into 給變量賦值的時候,select 查詢出來的集合為空,導致報錯ORA-01403,解決方案就是將這一段用begin end 包裹起來,拋出改異常的時候給變量一個默認值。如下圖:
你說的異常是什么意思?如果是,執(zhí)行中的錯誤,那么可以用“調試”,不過需要有一個系統權限的擁護才能調試,權限好象是什么debug XXXXX。
如果說的是有時執(zhí)行因為這樣那樣的數據問題出現的異常,那么一般都是通過exception來拋出異常的,這樣的拋出的異常,你可以自己編代碼,然后輸入一張表內,這樣就可以捕獲異常了。如果1表示沒有主鍵,2表示數據超長等等。具體的寫法網上很多,這里就不寫了。