A UDF must be registered in the database before the function can be recognized and used by SQL.
The statement allows you to specify the language and name of the program, along with options such as DETERMINISTIC, ALLOW PARALLEL, and RETURNS NULL ON NULL INPUT. These options help to more specifically identify to the database the intention of the function and how calls to the database can be optimized.
You should register an external UDF after you have written and completely tested the actual code. It is possible to define the UDF before actually writing it. However, to avoid any problems with running your UDF, you are encouraged to write and test it extensively before registering it.