Source: http://docs.oracle.com/cd/B28359_01/appdev.111/b31231.pdf