Create a custom query when you want to use a database source that you cannot configure using the single- or multiple-object source options. You might create a custom query to perform a complicated join of multiple tables or to reduce the number of fields that enter the data flow in a very large source.
To use a custom query as a source, select
as the source type, and then click
. When you define the query, use SQL that is valid for the source database. You can use database-specific functions in the query.
You can also use a custom query as a lookup source. For information about using a custom query in a Lookup transformation, see
When you create a custom query, enter an SQL SELECT statement to select the source columns you want to use.
uses the SQL statement to retrieve source column information. You can edit the datatype, precision, or scale of each column before you save the custom query.
For example, you might create a custom query based on a TRANSACTIONS table that includes transactions from 2016 with the following SQL statement:
SELECT TRANSACTION_ID, TRANSACTION_TOTAL, TRANSACTION_TIMESTAMP from dbo.TRANSACTIONS WHERE TRANSACTION_TIMESTAMP>’0:0:0:0 01/01/2016’
ensures that custom query column names are unique. If an SQL statement returns a duplicate column name,
adds a number to the duplicate column name as follows:
When you change a custom query in a saved mapping, at design time
replaces the field metadata with metadata using the revised query. Typically, this is the desired behavior. However, if the mapping uses a relational source and you want to retain the original metadata, use the
Retain existing field metadata
option. When you use this option,
doesn't refresh the field metadata during design time.
maps the existing fields with the fields from the revised query at run time. Fields that can't be mapped will cause run time failure.
Test the SQL statement you want to use on the source database before you create a custom query.
does not display specific error messages for invalid SQL statements.