Tableau Capability Customisations Reference

You can set the following capability customisations in the Tableau Datasource Customisation (TDC) file to define which Tableau capabilities are supported by the ODBC connection. For more information, see Customise and Tune a Connection.

Many of these customisations influence the type of SQL queries that Tableau issues. For settings that are not defined, Tableau attempts to determine the proper values for each capability by issuing various forms of SQL queries to experimentally verify which forms are supported, as described in How Tableau determines the capabilities of the ODBC driver.

CAP_CREATE_TEMP_TABLESSet to 'yes' if Tableau can create temporary tables needed for certain complex or optimised queries. See also: CAP_SELECT_INTO.
CAP_CONNECT_STORED_PROCEDURESet to 'yes' to allow support for connecting to a stored procedure.
CAP_FAST_METADATASet to 'yes' if you have small to moderate size schemas. This capability controls whether Tableau should enumerate all of the objects immediately when you connect. Set the value to ‘yes’ to enable this capability for better performance when creating new connections. Disable this capability to allow search for specific schemas or tables instead of retrieving all objects. You can search for all objects by using an empty string. This capability is available in 9.0 and later.
CAP_ISOLATION_LEVEL_READ_COMMITTEDSet to 'yes' to force the transaction isolation level to Read Committed if the data source supports it. Only one of the four transaction isolation levels should be set to 'yes'. See also: CAP_SET_ISOLATION_LEVEL_VIA_SQL, CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API.
CAP_ISOLATION_LEVEL_READ_UNCOMMITTEDSet to 'yes' to force the transaction isolation level to Read Uncommitted if the data source supports it. Only one of the four transaction isolation levels should be set to 'yes'. This capability can improve speed by reducing lock contention, but may result in partial or inconsistent data in query results. See also: CAP_SET_ISOLATION_LEVEL_VIA_SQL, CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API.
CAP_ISOLATION_LEVEL_REPEATABLE_READSSet to 'yes' to force the transaction isolation level to Repeatable Reads if the data source supports it. Only one of the four transaction isolation levels should be set to 'yes'. See also: CAP_SET_ISOLATION_LEVEL_VIA_SQL, CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API.
CAP_ISOLATION_LEVEL_SERIALIZABLESet to 'yes' to force the transaction isolation level to Serializable if the data source supports it. Only one of the four transaction isolation levels should be set to 'yes'. This is a very conservative setting that may improve stability at the expense of performance. See also: CAP_SET_ISOLATION_LEVEL_VIA_SQL, CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API.
CAP_SET_ISOLATION_LEVEL_VIA_ODBC_APISet to 'yes' to force Tableau to set the transaction isolation level for the data source using the ODBC API. CAP_SET_ISOLATION_LEVEL_VIA_ODBC_API must be set to 'yes' when any one of the four CAP_ISOLATION_LEVEL capabilities has been set to 'yes'.
CAP_SET_ISOLATION_LEVEL_VIA_SQLSet to 'yes' to force Tableau to set the transaction isolation level for the data source using a SQL query. CAP_SET_ISOLATION_LEVEL_VIA_SQL must be set to 'yes' when any one of the four CAP_ISOLATION_LEVEL capabilities has been set to 'yes'.
CAP_MULTIPLE_CONNECTIONS_FROM_SAME_IPSet to 'no' to prevent Tableau from creating more than one active connection to the database. This is a conservative setting that may increase stability at the expense of performance.
CAP_ODBC_BIND_DETECT_ALIAS_CASE_FOLDINGSet to 'yes' to allow Tableau to detect and recover from an ODBC data source that reports the field names in a result set using only upper-case or lower-case characters, instead of the expected field names.
CAP_ODBC_BIND_BOOL_AS_WCHAR_01LITERALSet to 'yes' to bind a Boolean data type as a WCHAR containing values '0' or '1'.
CAP_ODBC_BIND_BOOL_AS_WCHAR_TFLITERALSet to 'yes' to bind a Boolean data type as WCHAR containing values 't' or 'f'.
CAP_ODBC_BIND_FORCE_DATE_AS_CHARSet to 'yes' to force the Tableau native ODBC protocol to bind date values as CHAR.
CAP_ODBC_BIND_FORCE_DATETIME_AS_CHARSet to 'yes' to force the Tableau native ODBC protocol to bind datetime values as CHAR.
CAP_ODBC_BIND_FORCE_MAX_STRING_BUFFERSSet to 'yes' to force the Tableau native ODBC protocol to use maximum-sized buffers (1MB) for strings instead of the size described by metadata.
CAP_ODBC_BIND_FORCE_MEDIUM_STRING_BUFFERSSet to 'yes' to force the Tableau native ODBC protocol to use medium-sized buffers (1K) for strings instead of the size described by metadata.
CAP_ODBC_BIND_FORCE_SMALL_STRING_BUFFERSSet to 'yes' to force the Tableau native ODBC protocol to use small buffers for strings instead of the size described by metadata.
CAP_ODBC_BIND_FORCE_SIGNEDSet to 'yes' to force binding integers as signed.
CAP_ODBC_BIND_PRESERVE_BOMSet to 'yes' to preserve BOM when present in strings. Hive will return BOM and treat strings containing it as distinct entities.
CAP_ODBC_BIND_SKIP_LOCAL_DATATYPE_UNKNOWNSet to ‘yes’ to prevent the native ODBC Protocol from binding to columns having local data type DataType::Unknown in the expected metadata.
CAP_ODBC_BIND_SPATIAL_AS_WKTSet to ‘yes’ to force binding Spatial data as WKT (Well Known Text)
CAP_ODBC_BIND_SUPPRESS_COERCE_TO_STRINGSet to 'yes' to prevent the Tableau native ODBC protocol from binding non-string data as strings (i.e. requesting driver conversion).
CAP_ODBC_BIND_SUPPRESS_INT64Set to 'yes' to prevent the Tableau native ODBC protocol from using 64-bit integers for large numeric data.
CAP_ODBC_BIND_SUPPRESS_PREFERRED_CHARSet to 'yes' to prevent the Tableau native ODBC protocol from preferring a character type that differs from the driver default.
CAP_ODBC_BIND_SUPPRESS_PREFERRED_TYPESSet to 'yes' to prevent the Tableau native ODBC protocol from binding any data according to its preferred wire types. With this capability set, Tableau will only bind according to the data types described by the ODBC driver via metadata.
CAP_ODBC_BIND_SUPPRESS_WIDE_CHARSet to 'yes' to prevent the Tableau native ODBC protocol from binding strings a WCHAR. Instead they will be bound as single-byte CHAR arrays, and processed locally for any UTF-8 characters contained within.
CAP_ODBC_CONNECTION_STATE_VERIFY_FASTSet to ‘yes’ to check if a connection is broken with a fast ODBC API call.
CAP_ODBC_CONNECTION_STATE_VERIFY_PROBESet to ‘yes’ to check if a connection is broken with a forced probe.
CAP_ODBC_CONNECTION_STATE_VERIFY_PROBE_IF_STALESet to ‘yes’ to check if a connection is broken with a forced probe only if it is ‘stale’ (i.e., unused for about 30 minutes).
CAP_ODBC_CONNECTION_STATE_VERIFY_PROBE_PREPARED_QUERYSet to ‘yes’ to check if a connection is broken using a prepared query.
CAP_ODBC_CURSOR_DYNAMICSet to 'yes' to force the Tableau native ODBC protocol to set the cursor type for all statements to Dynamic (scrollable, detects added/removed/modified rows).
CAP_ODBC_CURSOR_FORWARD_ONLYSet to 'yes' to force the Tableau native ODBC protocol to set the cursor type for all statements to Forward-only (non-scrollable).
CAP_ODBC_CURSOR_KEYSET_DRIVENSet to 'yes' to force the Tableau native ODBC protocol to set the cursor type for all statements to Keyset-driven (scrollable, detects changes to values within a row).
CAP_ODBC_CURSOR_STATICSet to 'yes' to force Tableau to set the cursor type for all statements to Static (scrollable, does not detect changes).
CAP_ODBC_ERROR_IGNORE_FALSE_ALARMSet to 'yes' to allow the Tableau native ODBC protocol to ignore SQL_ERROR conditions where SQLSTATE is '00000' (meaning "no error").
CAP_ODBC_ERROR_IGNORE_SQLNODATA_FOR_COMMAND_QUERIESSet to ‘yes’ to ignore when SQLExecDirect returns SQL_NO_DATA even when data is not expected back.
CAP_ODBC_EXPORT_ALLOW_CHAR_UTF8Set to 'yes' to allow the use of single-byte char data type for binding Unicode strings as UTF-8.
CAP_ODBC_EXPORT_BIND_FORCE_TARGET_METADATASet to 'yes' to force binding for export based on all of the metadata from the target table instead of the ODBC metadata for the parameterised insert statement.
CAP_ODBC_EXPORT_BIND_PREFER_TARGET_METADATASet to 'yes' to prefer binding for export based on specific types of metadata from the target table instead of the ODBC metadata for the parameterised insert statement.
CAP_ODBC_EXPORT_BUFFERS_RESIZABLESet to 'yes' to allow export buffers to be reallocated after the first batch to improve performance.
CAP_ODBC_EXPORT_BUFFERS_SIZE_FIXEDSet to 'yes' to ignore the width of a single row when computing the total rows to insert at a time.
CAP_ODBC_EXPORT_BUFFERS_SIZE_LIMIT_512KBSet to 'yes' to limit export buffers to 512 KB. This is an uncommon setting.
CAP_ODBC_EXPORT_BUFFERS_SIZE_MASSIVESet to 'yes' to force the use of large buffers for insert. If CAP_ODBC_EXPORT_BUFFERS_RESIZABLE is not set or disabled, a fixed row count is used.
CAP_ODBC_EXPORT_BUFFERS_SIZE_MEDIUMSet to 'yes' to force the use of medium-sized buffers for insert. If CAP_ODBC_EXPORT_BUFFERS_RESIZABLE is not set or disabled, a fixed row count is used.
CAP_ODBC_EXPORT_BUFFERS_SIZE_SMALLSet to 'yes' to force the use of small buffers for insert. If CAP_ODBC_EXPORT_BUFFERS_RESIZABLE is not set or disabled, a fixed row count is used.
CAP_ODBC_EXPORT_CONTINUE_ON_ERRORSet to 'yes' to continue data insert despite errors. Some data sources report warnings as errors.
CAP_ODBC_EXPORT_DATA_BULKSet to 'yes' to allow the use of ODBC bulk operations for data insert.
CAP_ODBC_EXPORT_DATA_BULK_VIA_INSERTSet to 'yes' to allow the use of ODBC bulk operations based on 'INSERT INTO' parameterised queries.
CAP_ODBC_EXPORT_DATA_BULK_VIA_ROWSETSet to 'yes' to allow the use of ODBC bulk operations based on a rowset cursor.
CAP_ODBC_EXPORT_FORCE_INDICATE_NTSSet to 'yes' to force the use of indicator buffers for identifying null-terminated strings (NTS).
CAP_ODBC_EXPORT_FORCE_SINGLE_ROW_BINDINGSet to 'yes' to force the use of a single row for binding export buffers to insert data.
CAP_ODBC_EXPORT_FORCE_SINGLE_ROW_BINDING_WITH_TIMESTAMPSSet to 'yes' to force the use of a single row for binding export buffers when dealing with timestamp data. This is required for some versions of Teradata.
CAP_ODBC_EXPORT_FORCE_STRING_WIDTH_FROM_SOURCESet to 'yes' to force the use of the source string width (from Tableau metadata), overriding the destination string width (from insert parameter metadata).
CAP_ODBC_EXPORT_FORCE_STRING_WIDTH_USING_OCTET_LENGTHSet to 'yes' to force the use of the source string width from the octet length.
CAP_ODBC_EXPORT_SUPPRESS_STRING_WIDTH_VALIDATIONSet to 'yes' to suppress validating that the target string width can accommodate the widest source strings.
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BATCH_MASSIVESet to ‘yes’ to commit in massive batches of INSERT statements (~100,000). This may be useful with single-row export binding.
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BATCH_MEDIUMSet to 'yes' to commit in medium-sized batches of INSERT statements (~50). A single statement may be bound to multiple records.
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BATCH_SMALLSet to 'yes' to commit in small batches of INSERT statements (~5). A single statement may be bound to multiple records.
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BYTES_MASSIVESet to 'yes' to commit in massive batches of data (~100 MB).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BYTES_MEDIUMSet to 'yes' to commit in medium batches of data (~10 MB).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_BYTES_SMALLSet to 'yes' to commit in small batches of data (~1 MB).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_EACH_STATEMENTSet to 'yes' to commit after executing each INSERT statement. A single statement may be bound to multiple records.
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_INTERVAL_LONGSet to 'yes' to commit in long intervals of elapsed time (~100 seconds).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_INTERVAL_MEDIUMSet to 'yes' to commit in medium intervals of elapsed time (~10 seconds).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_INTERVAL_SHORTSet to 'yes' to commit in short intervals of elapsed time (~1 seconds).
CAP_ODBC_EXPORT_TRANSACTIONS_COMMIT_ONCE_WHEN_COMPLETESet to 'yes' to commit only once at the end after the export is complete.
CAP_ODBC_EXPORT_TRANSLATE_DATA_PARALLELSet to 'yes' to use parallel loops to translate Tableau DataValues to wire buffers on export.
CAP_ODBC_FETCH_ABORT_FORCE_CANCEL_STATEMENTSet to 'yes' to cancel the statement handle upon interrupting SQLFetch with a cancel exception.
CAP_ODBC_FETCH_BUFFERS_RESIZABLESet to 'yes' to allow buffers to be reallocated after fetch to improve performance or handle data truncation.
CAP_ODBC_FETCH_BUFFERS_SIZE_FIXEDSet to 'yes' to ignore the width of a single row when computing the total rows to fetch.
CAP_ODBC_FETCH_BUFFERS_SIZE_MASSIVESet to 'yes' to force the use of large buffers. If CAP_ODBC_FETCH_BUFFERS_SIZE_FIXED is enabled, a fixed row count is used.
CAP_ODBC_FETCH_BUFFERS_SIZE_MEDIUMSet to 'yes' to force the use of medium-sized buffers. If CAP_ODBC_FETCH_BUFFERS_SIZE_FIXED is enabled, a fixed row count is used.
CAP_ODBC_FETCH_BUFFERS_SIZE_SMALLSet to 'yes' to force the use of small buffers. If CAP_ODBC_FETCH_BUFFERS_SIZE_FIXED is enabled, a fixed row count is used.
CAP_ODBC_FETCH_CONTINUE_ON_ERRORSet to 'yes' to allow the Tableau native ODBC protocol to continue resultset fetch despite errors (some data sources report warnings as errors).
CAP_ODBC_FETCH_IGNORE_FRACTIONAL_SECONDSSet to 'yes' to allow the Tableau native ODBC protocol to ignore the fractional seconds component of a time value when fetching query result set data. This is useful when working with data sources that do not follow the ODBC specification for fractional seconds, which must be represented as billionths of a second.
CAP_ODBC_FETCH_RESIZE_BUFFERSSet to 'yes' to allow the Tableau native ODBC protocol to automatically resize buffers and fetch again if data truncation occurred.
CAP_ODBC_FORCE_SINGLE_ROW_BINDINGSet to 'yes' to force the Tableau native ODBC protocol to use a single row for result set transfers instead of the more efficient bulk-fetch.
CAP_ODBC_IMPORT_ERASE_BUFFERSSet to 'yes' to reset the contents of data buffers before fetching each block.
CAP_ODBC_IMPORT_TRANSLATE_DATA_PARALLELSet to ‘no’ to disable decoding data locally in parallel.
CAP_ODBC_METADATA_FORCE_LENGTH_AS_PRECISIONSet to 'yes' to force the Tableau native ODBC protocol to use the column ‘length’ as the numeric precision. This is an uncommon setting.
CAP_ODBC_METADATA_FORCE_NUM_PREC_RADIX_10Set to 'yes' to force the Tableau native ODBC protocol to assume the numeric precision is reported in base-10 digits. This is an uncommon setting.
CAP_ODBC_METADATA_FORCE_UNKNOWN_AS_STRINGSet to 'yes' to force the Native ODBC Protocol to treat unknown data types as string instead of ignoring the associated column.
CAP_ODBC_METADATA_FORCE_UTF8_IDENTIFIERSSet to 'yes' to force the protocol to treat identifiers as UTF-8 when communicating with the driver.
CAP_ODBC_METADATA_SKIP_DESC_TYPE_NAMESet to 'yes' to remove the check for the SQL_DESC_TYPE_NAME attribute with the SQLColAttribute API.
CAP_ODBC_METADATA_STRING_LENGTH_UNKNOWNSet to 'yes' to prevent Tableau from allocating memory based on the driver-reported string length, which may not be known or reported properly. Instead, Tableau will use a fixed-sized string length, and will reallocate as needed to handle string data that is too large for the fixed-size buffer.
CAP_ODBC_METADATA_STRING_TRUST_OCTET_LENGTHSet to 'yes' to use the octet length reported by the driver for strings instead of computing it from the number of characters.
CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERYSet to 'yes' to prevent Tableau from executing a query as a means of reading metadata. While Tableau typically includes a row-limiting clause in such metadata queries (e.g., 'LIMIT', or 'WHERE 1=0'), this may not help when used with a Custom SQL connection for database systems with poor query optimisers. Note that this capability may prevent Tableau from determining the connection metadata properly.
CAP_ODBC_METADATA_SUPPRESS_PREPARED_QUERYSet to 'yes' to prevent Tableau from using a prepared query as a means of reading metadata. A prepared query is often the fastest way to accurately read metadata. However, not all database systems are capable of reporting metadata for a prepared query without actually executing the query. Note that certain metadata – for example from connections using Custom SQL– cannot be retrieved if this capability and CAP_ODBC_METADATA_SUPPRESS_EXECUTED_QUERY are both set.
CAP_ODBC_METADATA_SUPPRESS_READ_IDENTITY_COLUMNSSet to ‘no’ to prevent reading identity column metadata.
CAP_ODBC_METADATA_SUPPRESS_SELECT_STARSet to 'yes' to prevent reading metadata using a 'select *' query.
CAP_ODBC_METADATA_SUPPRESS_SQLCOLUMNS_APISet to 'yes' to prevent Tableau from using older, less accurate API for reading metadata from ODBC data sources. Setting this capability allows Tableau to read metadata by issuing a full 'select *' query, which is expensive but may enable connectivity for extremely limited or unstable data sources.
CAP_ODBC_METADATA_SUPPRESS_SQLFOREIGNKEYS_APISet to 'yes' to prevent Tableau from attempting to read metadata describing foreign key constraints. Despite the simple nature of this ODBC API, some drivers may have unstable behaviour or produce inaccurate results. Setting this capability may force Tableau to generate less efficient queries involving multi-table joins.
CAP_ODBC_METADATA_SUPPRESS_SQLPRIMARYKEYS_APISet to 'yes' to prevent Tableau from reading primary key metadata using the SQLPrimaryKeys API or an equivalent query. This capability is available in Tableau 9.1 and later.
CAP_ODBC_METADATA_SUPPRESS_SQLSTATISTICS_APISet to 'yes' to prevent reading unique constraints and table cardinality estimates using the SQLStatistics API or an equivalent query. This capability is available in Tableau 9.0 and later.
CAP_ODBC_QUERY_USE_PREPARE_PARAMETER_MARKEREnable to use prepared statements with parameter markers instead of literal values. Applies only for floating point, integer, and string values.
CAP_ODBC_REBIND_SKIP_UNBINDSet to 'yes' to force the Tableau native ODBC protocol to rebind a column directly and skip unbinding, which reduces ODBC API calls when resizing buffers to refetch truncated data.
CAP_ODBC_SUPPORTS_LONG_DATA_BULKSet to ‘yes’ if driver can fetch multiple long-data rows at a time.
CAP_ODBC_SUPPORTS_LONG_DATA_ORDEREDSet to ‘yes’ if driver requires long-data columns to come after non-long-data ones.
CAP_ODBC_SUPPRESS_INFO_SCHEMA_STORED_PROCSSet to 'yes' to prevent the INFORMATION.SCHEMA schema from being queried when enumerating stored procedures.
CAP_ODBC_SUPPRESS_INFO_SCHEMA_TABLESSet to ‘yes’ to prevent tables from “information_schema” schema from being returned by EnumerateTables.
CAP_ODBC_SUPPRESS_PG_TEMP_SCHEMA_TABLESSet to ‘yes’ to prevent tables from “pg_temp” schema from being returned by EnumerateTables.
CAP_ODBC_SUPPRESS_PREPARED_QUERY_FOR_ALL_COMMAND_QUERIESSet to 'yes' to execute all commands directly (i.e., no prepared statement).
CAP_ODBC_SUPPRESS_PREPARED_QUERY_FOR_DDL_COMMAND_QUERIESSet to 'yes' to execute DDL commands (e.g. CREATE TABLE) directly (i.e., no prepared statement).
CAP_ODBC_SUPPRESS_PREPARED_QUERY_FOR_DML_COMMAND_QUERIESSet to 'yes' to execute DML commands (e.g. INSERT INTO) directly (i.e, no prepared statement).
CAP_ODBC_SUPPRESS_PREPARED_QUERY_FOR_NON_COMMAND_QUERIESSet to ‘yes’ to execute all non-command queries directly (no prepared statement).
CAP_ODBC_SUPPRESS_SYS_SCHEMA_STORED_PROCSSet to 'yes' to explicitly add the ‘SYS’ schema to the schema exclusions when enumerating stored procedures.
CAP_ODBC_TRANSACTIONS_COMMIT_INVALIDATES_PREPARED_QUERYSet to ‘yes’ to indicate that a transaction will invalidate all prepared statements and close any open cursors.
CAP_ODBC_TRANSACTIONS_SUPPRESS_AUTO_COMMITSet to 'yes' to prevent the Native ODBC Protocol from using default auto-committing transaction behaviour in ODBC. This capability cannot be used with CAP_ODBC_TRANSACTIONS_SUPPRESS_EXPLICIT_COMMIT.
CAP_ODBC_TRANSACTIONS_SUPPRESS_EXPLICIT_COMMITSet to 'yes' to prevent the Native ODBC Protocol from explicitly managing transactions. This capability cannot be used with CAP_ODBC_TRANSACTIONS_SUPPRESS_AUTO_COMMIT.
CAP_ODBC_TRIM_CHAR_LEAVE_PADDINGSet to 'yes' to leave whitespace padding at the end of a character or text data type. Most data sources will trim this whitespace automatically, but the behaviour depends on the driver.
CAP_ODBC_TRIM_VARCHAR_PADDINGSet to 'yes' to force the Tableau native ODBC protocol to trim trailing whitespace from VARCHAR columns which the driver has erroneously padded.
CAP_ODBC_UNBIND_AUTOSet to 'yes' to force the Tableau native ODBC protocol to unbind and deallocate columns automatically, which can reduce ODBC API calls.
CAP_ODBC_UNBIND_BATCHSet to 'yes' to force the Tableau native ODBC protocol to unbind and deallocate columns in a single batch operation, which can reduce ODBC API calls.
CAP_ODBC_UNBIND_EACHSet to 'yes' to force the Tableau native ODBC protocol to unbind and deallocate columns individually, which may improve stability.
CAP_ODBC_UNBIND_PARAMETERS_BATCHSet to ‘yes’ to unbind all parameters in a single batch operation.
CAP_ORACLE_SHOW_ALL_SYNONYM_OWNERSSet to 'yes' to list all the owners in the all_synonyms view for Oracle. This capability is available in 9.0 and later.
CAP_QUERY_BOOLEXPR_TO_INTEXPRSet to 'yes' if Tableau must coerce any Boolean expressions to an integer value in order include in a result set.
CAP_QUERY_FROM_REQUIRES_ALIASSet to 'yes' if the FROM clause must provide an alias for the given table.
CAP_QUERY_GROUP_ALLOW_DUPLICATESSet to 'no' if SQL queries cannot contain duplicate expressions in the GROUP BY clause (this is uncommon).
CAP_QUERY_GROUP_BY_ALIASSet to 'yes' if SQL queries with aggregations can reference the grouping columns by their corresponding alias in the SELECT list, e.g. GROUP BY ‘none_ShipCountry_nk.
CAP_QUERY_GROUP_BY_DEGREESet to 'yes' if SQL queries with aggregations can reference the grouping columns by the ordinal position of each column, e.g. GROUP BY 2, 5. See also: CAP_QUERY_SORT_BY_DEGREE
CAP_QUERY_HAVING_REQUIRES_GROUP_BYSet to 'yes' if Tableau must use an artificial grouping field for any query which has a HAVING clause but no grouping columns.
CAP_QUERY_HAVING_UNSUPPORTEDSet to 'yes' if the SQL syntax for HAVING is unsupported. Tableau may be able to work around this using subqueries. See also: CAP_QUERY_SUBQUERIES.
CAP_QUERY_INCLUDE_GROUP_BY_COLUMNS_IN_SELECTSet to 'yes' to require all GROUP BY expressions to also appear in the SELECT expression list.
CAP_QUERY_JOIN_ACROSS_SCHEMASSet to 'yes' if SQL queries can express joins between tables located in different schemas.
CAP_QUERY_JOIN_ASSUME_CONSTRAINEDSet to ‘yes’ to cull inner joins even if the database tables does do not have FK-PK relationships.
CAP_QUERY_JOIN_PUSH_DOWN_CONDITION_EXPRESSIONSSet to 'yes' to rewrite joins to simplify the ON clause conditions to simple identifier comparisons.
CAP_QUERY_JOIN_REQUIRES_SCOPESet to 'yes' if SQL queries must scope each join clause within parentheses to ensure a proper order of evaluation.
CAP_QUERY_JOIN_REQUIRES_SUBQUERYSet to ‘yes’ to force join expressions involving more than two tables to be composed with subqueries.
CAP_QUERY_NULL_REQUIRES_CASTSet to 'yes' if the data source requires that all NULL literals are cast to an explicit data type.
CAP_QUERY_SELECT_ALIASES_SORTEDSet to 'yes' if Tableau must impose a deterministic order on the SELECT expressions (sorted by alias) to ensure that query results can be properly matched with each field in the Tableau visualisation. This is only required for data sources which do not preserve the aliases of the SELECT expressions when returning metadata with the query results.
CAP_QUERY_SORT_BY_DEGREESet to 'yes' if SQL queries can reference the sorting columns by the ordinal position of each column, e.g. ORDER BY 2, 5. See also: CAP_QUERY_GROUP_BY_DEGREE.
CAP_QUERY_SUBQUERIESSet to 'yes' if the data source supports subqueries.
CAP_QUERY_SUBQUERIES_WITH_TOPSet to 'yes' if the data source supports a TOP or LIMIT row-limiting clause within a subquery.
CAP_QUERY_SUBQUERY_DATASOURCE_CONTEXTSet to 'yes' to use subquery filtered query context to implement data source filters. This capability is available in Tableau 8.0 through Tableau 9.3 only.
CAP_QUERY_SUBQUERY_QUERY_CONTEXTSet to 'yes' to force Tableau to use a subquery for context filters instead of a temporary table or locally cached results.
CAP_QUERY_TOP_0_METADATASet to ‘yes’ if the data source can handle a “TOP 0” request for retrieving metadata.
CAP_QUERY_TOP_NSet to 'yes' if the data source supports any form of row-limiting clause. The exact forms supported are described below.
CAP_QUERY_TOPSTYLE_LIMITSet to 'yes' if the data source uses LIMIT as the row-limiting clause.
CAP_QUERY_TOPSTYLE_ROWNUMSet to 'yes' if the data source supports an Oracle-style filter on ROWNUM as the row-limiting clause.
CAP_QUERY_TOPSTYLE_TOPSet to 'yes' if the data source uses TOP as the row-limiting clause.
CAP_QUERY_USE_QUERY_FUSIONSet to ‘no’ to prevent Tableau from combining multiple individual queries into a single combined query. Turn off this capability for performance tuning or if the database is unable to process large queries. This capability is enabled by default and is available in Tableau 9.0 and later for all data sources except Tableau data extracts. Support for this capability in Tableau data extracts is available in Tableau 9.0.6.
CAP_QUERY_WHERE_FALSE_METADATASet to ‘yes’ if the data source can handle a “WHERE <false>” predicate for retrieving metadata.
CAP_SELECT_INTOSet to 'yes' if Tableau can create a table on the fly from the resultset of another query. See also: CAP_CREATE_TEMP_TABLES.
CAP_SELECT_TOP_INTOSet to 'yes' if Tableau can use a TOP or LIMIT row-limiting clause when creating a table from a query resultset.
CAP_STORED_PROCEDURE_PREFER_TEMP_TABLESet to 'yes' to use a temporary table to support remote queries over the stored procedure result set.
CAP_STORED_PROCEDURE_REPAIR_TEMP_TABLE_STRINGSSet to 'yes' to attempt to compute actual string widths if metadata indicates no width or non-positive width.
CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_BUFFERSet to 'yes' to populate the temporary table from a result set buffered in entirety.
CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_NEW_PROTOCOLSet to ‘yes’ to populate the temporary table from a separate protocol created for just this operation.
CAP_SUPPRESS_DISCOVERY_QUERIESSet to 'yes' to prevent Tableau from detecting the supported SQL syntax for a variety of clauses.
CAP_SUPPRESS_DISPLAY_LIMITATIONSSet to 'yes' to suppress displaying any warnings about limitations for this data source.

See also

Other Databases (ODBC) – Describes how to connect to your data using the ODBC connector.

Tableau and ODBC – Provides background information about ODBC, describes how Tableau determines the functionality of an ODBC driver and lists frequently asked questions.

Customise and Tune a Connection – Describes how to customise connection information for improved functionality and performance.

ODBC/SQL Customisations Reference – Lists customisations that represent the parts of the ODBC and SQL standards that the ODBC driver reports supporting.

Thanks for your feedback!Your feedback has been successfully submitted. Thank you!