pl/sql書いててイラっとする瞬間

こういうのが書きたいとき、たとえば、

create or replace PROCEDURE tekitou(
  p_char_val1 VARCHAR2,
  p_char_val2 VARCHAR2,
  p_char_val3 VARCHAR2,
  p_char_val4 VARCHAR2
)
IS
BEGIN
  IF (p_char_val1 = '') is null THEN
    IF (p_char_val2 = '') is null THEN
      IF (p_char_val3 = '') is null THEN
        IF (p_char_val4 = '') is null THEN
         -- すべての引数がnullで渡されたときの処理
        END IF;
      END IF;
    END IF;
  END IF;
END;
/

とかいう処理の場合、このネストの深さがつらくなる。

if((p_char_val1 == '' or p_char_val1 == null) &&
   (p_char_val2 == '' or p_char_val2 == null) &&
   (p_char_val3 == '' or p_char_val3 == null) &&
   (p_char_val4 == '' or p_char_val4 == null)){
  -- すべてnullだった場合
}

という感じで書きたくなる。
実はあるのかな?