Example: Use UDFs to query instances of UDTs

Suppose you need to know how much e-mail was sent by a specific customer regarding customer orders and you have the e-mail address of your customers in the customers table.

The statement is as follows:

     SELECT COUNT (*) 
       FROM ELECTRONIC_MAIL AS EMAIL, CUSTOMERS 
       WHERE SUBJECT (EMAIL.MESSAGE) = 'customer order' 
       AND CUSTOMERS.EMAIL_ADDRESS = SENDER (EMAIL.MESSAGE) 
       AND CUSTOMERS.NAME = 'Customer X'

You have used the UDFs defined on the UDT in this SQL query since they are the only means to manipulate the UDT. In this sense, your UDT e-mail is completely encapsulated. Its internal representation and structure are hidden and can only be manipulated by the defined UDFs. These UDFs know how to interpret the data without the need to expose its representation.

Suppose you need to know the details of all the e-mail your company received in 1994 that had to do with the performance of your products in the marketplace.

     SELECT SENDER (MESSAGE), SENDING_DATE (MESSAGE), SUBJECT (MESSAGE) 
       FROM ELECTRONIC_MAIL 
       WHERE CONTAINS (MESSAGE,
       '"performance" AND "products" AND "marketplace"') = 1 

You have used the contains UDF that is capable of analyzing the contents of the message searching for relevant keywords or synonyms.