Functions that are added via the SQL_FUNCTIONS= option might not be passed to the database management system (DBMS)


The LIBNAME statement option SQL_FUNCTIONS= customizes the list of in-memory, SQL dictionary functions that can be passed to a DBMS. This option enables you to add functions that you want the SAS/ACCESS® engine to consider passing to the DBMS. However, even if a function is added to the list of functions that are to be considered, there is no guarantee that it will be passed. Ultimately the SAS/ACCESS engines determine what can be passed to the DBMS. One of an engine's first considerations is whether the PROC SQL query contains something that triggers implicit pass-through processing. Some of the more common triggers include the following:

Having one of these triggers still does not guarantee implicit pass-through processing; it only guarantees that the engine will consider passing the query to the DBMS. If implicit pass-through processing is not triggered or it is explicitly turned off, the function is not passed to the DBMS. Instead, the function is processed by the SAS® System.

Using the function in a WHERE clause is not considered implicit pass-through processing. However, if the function is in a WHERE clause that is part of your query, the function might be passed to the DBMS.