NVL2 in Oracle 8i and 9i is a SQL-only function. It is not supported in PL/SQL, and not present in the sys.standard package. In 9i and above you can use it in SQL statements inside of PL/SQL. In 8i you can't, because 8i has separate SQL parsers for SQL and PL/SQL.
I don't know if it was ever added to PL/SQL (as in "s := NVL2('a','b','c')").