The correct answer is A. View.
In Snowflake, a SQL User-Defined Function can reference certain database objects in a SQL expression or query expression. A view can be referenced by a SQL UDF, subject to normal privilege and ownership rules.
Why A is correct:
A UDF can include SQL logic that references a view. This allows reusable logic to be built on top of existing query definitions.
Example concept:
CREATE FUNCTION my_function()
RETURNS NUMBER
AS
$$
SELECT COUNT(*) FROM my_view
$$;
Why the other options are less appropriate:
B. A stream is a change tracking object and is not the standard object referenced from a UDF for reusable query logic.
C. An external table is used to query data stored in external cloud storage. It is not the best answer for this SnowPro-style question.
D. A materialized view is a precomputed view-like object, but the standard documented answer for an object referenced from a UDF is a view.
Official Snowflake documentation reference:
Snowflake documentation for SQL UDFs explains that SQL UDF definitions can contain SQL expressions and query expressions. These query expressions can reference database objects such as views, depending on privileges and valid SQL usage.
[Reference: Snowflake Documentation — SQL user-defined functions; Snowflake Documentation — Views; SnowPro Core Study Guide — SQL and Snowflake Objects., , ========================, ]