條款十三是說要避免在變數宣告的同時呼叫 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;