The following language statements specify whether executing the function will change the state of the database. The default is CONTAINS SQL.

Functions syntax:

NO SQL | CONTAINS SQL | READS SQL DATA

Procedures syntax:

NO SQL | CONTAINS SQL | READS SQL DATA | MODIFIES SQL DATA 

where:

NO SQL
specifies that the routines use Java language.
CONTAINS SQL
specifies that routines use SQL statements, but does not directly access the underlying data source.
READS SQL DATA
specifies that routines use SQL statements to access the underlying data source, but only reads the data.
MODIFIES SQL DATA
specifies that routines use SQL statements to access and potentially alter the underlying data source.