Pl / SQl is a programming script - language that is used by the Oracle database.
A user defined function is similiar to a
java method in that it can have zero or more parameters input and must return a value. They can be used in sql statements once defined. You useally see them written in Pl/sql but can be written in java.
A stored procedure can have zero or more parameters that are input or output from the procedure. The stored procedure resides on the DB server to allow faster data access. Useally written in PL/SQl .
This is a simplistic summary but hopefully give you an idea.