From http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions040.htm