Il n'est pas possible d'utiliser la fonction "Decode" autrement que dans un ordre Select, et ce pour les raisons que t'expliquent "LE" guru Oracle du PL/SQL, Steve Feuerstein, dans cet article : http://www.oreview.com/9701feue.htm
Il t'explique aussi comment la simuler...
Pour ce qui est de l'equivalent du CASE en pl/sql, eh bien tu as raison...,il n'existe pas en tant que tel, c'est la structure condtionnelle suivante à base de IF qui le remplace:
IF <condition_1> THEN ...
ELSIF <condition_2> THEN ...
... ...
ELSIF <condition_n> THEN ...
ELSE ...
END IF;