PL/SQL amp; SQL CODING GUIDELINE 13 - Avoid initializing variables using functions in the declaration section
條款十三是說要避免在變數宣告的同時呼叫 function 去初始變數。
DECLARE
l_company_name VARCHAR2(30) := util_pck.get_company_name(in_id => 47);
BEGIN
…
END;
因為在變數宣告的地方呼叫 function 去初始變數,function 發生例外時是無法攔截處理的。
因此要像下面這樣將宣告與初始拆開處理。
DECLARE
v_str VARCHAR2(30);
BEGIN
<<init>>
BEGIN
v_str := util_pck.get_company_name(inId => 47);
EXCEPTION
WHEN VALUE_ERROR THEN
...
END init;
END;