---
schema_version: "1"
id: a93ba400ecc8b2e6f93c8dddf8dd91ae3c5deb82f7885065fcf03a768c859a2b
title: Tableau JDBC 功能自訂參考
collection: tableau
version: current
locale: zh-tw
portal_url: https://docs.salesforce.com/tableau/current/zh-tw/pro/desktop/jdbc_capabilities.md
canonical_url: https://help.tableau.com/current/pro/desktop/zh-tw/jdbc_capabilities.htm
source_site: help.tableau.com
content_type: documentation
content_hash: c4318f7ca2934b533ea27ba22da4f1d82255d5bd1772f1379acc7cc00691da02
description: Reference for JDBC capability customizations set in a TDC file.
---
[跳至主要內容](#main-content)

# Tableau JDBC 功能自訂參考

您可在 Tableau 資料來源自訂 (TDC) 檔案中設定以下功能自訂項，藉此定義 JDBC 連線支援的 Tableau 功能。

其中許多自訂項會影響 Tableau 發出的 SQL 查詢的類型。對於未定義的設定，Tableau 會嘗試透過發出各種形式的 SQL 查詢，以實驗方式驗證哪些形式受支援，進而確定每個功能的適當值。

<table class="simple-table" style="width: 100%;"><colgroup><col style="width: 50%;"><col></colgroup><tbody><tr><td colspan="1" rowspan="1">CAP_CREATE_TEMP_TABLES</td><td colspan="1" rowspan="1">如果 Tableau 可以建立某些複雜或優化的查詢所需的臨時表，則設定為「yes」。另請參閱：CAP_SELECT_INTO。</td></tr><tr><td>CAP_CONNECT_STORED_PROCEDURE</td><td>設定為「yes」以允許對連線到預存程序的支援。</td></tr><tr><td>CAP_FAST_METADATA</td><td>如果有小型到中型的架構，請設定為「yes」。此功能控制 Tableau 在您連線時是否應立即枚舉所有物件。將值設定為「yes」啟用此功能，以便在建立新連線時改善效能。停用此功能以允許搜尋特定的架構或表格，而不是檢索所有對象。可以透過使用空白字串來搜尋所有物件。9.0 及更高版本中提供了此功能。</td></tr><tr><td colspan="1" rowspan="1">CAP_ISOLATION_LEVEL_READ_COMMITTED</td><td colspan="1" rowspan="1">如果資料來源支援，則設定為「yes」以強制事務隔離層級為 Read Committed。應只將 4 個事務隔離層級中的一個設定為「yes」。另請參閱：CAP_SET_ISOLATION_LEVEL_VIA_SQL。</td></tr><tr><td colspan="1" rowspan="1">CAP_ISOLATION_LEVEL_READ_UNCOMMITTED</td><td colspan="1" rowspan="1">如果資料來源支援，則設定為「yes」以強制事務隔離層級為 Read Uncommitted。應只將 4 個事務隔離層級中的一個設定為 [yes] 。此功能可以透過減少鎖爭用來提高速度，但可能會導致查詢結果中的資料不完整或不一致。另請參閱：CAP_SET_ISOLATION_LEVEL_VIA_SQL。</td></tr><tr><td colspan="1" rowspan="1">CAP_ISOLATION_LEVEL_REPEATABLE_READS</td><td colspan="1" rowspan="1">如果資料來源支援，則設定為「yes」以強制事務隔離層級為 Repeatable Reads。應只將 4 個事務隔離層級中的一個設定為 [yes] 。另請參閱：CAP_SET_ISOLATION_LEVEL_VIA_SQL。</td></tr><tr><td colspan="1" rowspan="1">CAP_ISOLATION_LEVEL_SERIALIZABLE</td><td colspan="1" rowspan="1">如果資料來源支援，則設定為「yes」以強制事務隔離層級為 Serializable。應只將 4 個事務隔離層級中的一個設定為 [yes] 。這是一個非常保守的設定，它可以提高穩定性，但會降低效能。另請參閱：CAP_SET_ISOLATION_LEVEL_VIA_SQL。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_BIND_DETECT_ALIAS_CASE_FOLDING</td><td colspan="1" rowspan="1">設定為「yes」以允許 Tableau 偵測並從 JDBC 資料來源復原；該資料來源在結果集合中回報的欄位名稱僅會使用大寫或小寫字元，而非預期的欄位名稱。</td></tr><tr><td>CAP_JDBC_EXPORT_DATA_BATCH</td><td>設定為「no」以停用對資料插入使用 JDBC 批次作業。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_METADATA_GET_INDEX_INFO</td><td colspan="1" rowspan="1">設定為「no」以停止讀取索引資訊。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_METADATA_READ_FOREIGNKEYS</td><td colspan="1" rowspan="1">設定為「no」以停止讀取外部索引鍵中繼資料。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_METADATA_READ_PRIMARYKEYS</td><td colspan="1" rowspan="1">設定為「no」以停止讀取主索引鍵中繼資料。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_METADATA_USE_RESULTSET_FOR_TABLE</td><td colspan="1" rowspan="1">設定為「yes」以從 select * 查詢的結果集中取得欄中繼資料。在 Tableau 2020.4 及更高版本中可用。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_QUERY_ASYNC</td><td colspan="1" rowspan="1">設定為「yes」以在其他執行緒上執行查詢。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_QUERY_CANCEL</td><td colspan="1" rowspan="1">如果驅動程式可以取消查詢，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_QUERY_DISABLE_AUTO_COMMIT</td><td colspan="1" rowspan="1">設定為「yes」以在執行查詢時停用預設的自動認可模式。在 Tableau 2020.4 及更高版本中可用。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_QUERY_FORCE_PREPARE</td><td colspan="1" rowspan="1">設定為「yes」以始終在執行前準備查詢。在 Tableau 2020.4 及更高版本中可用。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_SUPPRESS_EMPTY_CATALOG_NAME</td><td colspan="1" rowspan="1">設定為「yes」以忽略丟失的目錄。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_SUPPRESS_ENUMERATE_DATABASES</td><td colspan="1" rowspan="1">設定為「yes」以停用資料庫列舉。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_SUPPRESS_ENUMERATE_SCHEMAS</td><td colspan="1" rowspan="1">設定為「yes」以停用架構列舉。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_METADATA_SUPPRESS_PREPARED_QUERY</td><td colspan="1" rowspan="1">若 CAP_JDBC_METADATA_USE_RESULTSET_FOR_TABLE 已啟用，則將此功能設定為「yes」以停用準備用於讀取表中繼資料的查詢。我們將執行用 where-false 子句包裝的查詢。</td></tr><tr><td colspan="1" rowspan="1">CAP_JDBC_USE_ADAPTIVE_FETCH_SIZE</td><td colspan="1" rowspan="1">設定為「yes」以使用 ResultSet 中繼資料來確定最佳擷取大小。可能需要啟用 CAP_JDBC_QUERY_FORCE_PREPARE 才能正常工作。在 Tableau 2020.4 及更高版本中可用。</td></tr><tr><td colspan="1" rowspan="1">CAP_MULTIPLE_CONNECTIONS_FROM_SAME_IP</td><td colspan="1" rowspan="1">設定為「no」以阻止 Tableau 建立到資料庫的多個活動連線。這是一個保守的設定，它可以提高穩定性，但會降低效能。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_BOOLEXPR_TO_INTEXPR</td><td colspan="1" rowspan="1">如果 Tableau 必須將任何布林運算式強制轉換為整數值才能包括在結果集中，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_FROM_REQUIRES_ALIAS</td><td colspan="1" rowspan="1">如果 FROM 子句必須為給定表提供別名，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_GROUP_ALLOW_DUPLICATES</td><td colspan="1" rowspan="1">如果 SQL 查詢無法在 GROUP BY 子句中包含重複的運算式（這很罕見），則設定為「no」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_GROUP_BY_ALIAS</td><td colspan="1" rowspan="1">如果 SQL 彙總查詢可以透過 SELECT 清單中的相應別名引用組合欄（例如 GROUP BY "none_ShipCountry_nk"。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_GROUP_BY_DEGREE</td><td colspan="1" rowspan="1">如果 SQL 彙總查詢可以透過每個欄的序號位置引用組合欄（例如 GROUP BY 2, 5），則設定為「yes」。另請參閱：CAP_QUERY_SORT_BY_DEGREE</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_HAVING_REQUIRES_GROUP_BY</td><td colspan="1" rowspan="1">如果 Tableau 必須對具有 HAVING 子句但沒有組合欄的任何查詢使用假分組欄位，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_HAVING_UNSUPPORTED</td><td colspan="1" rowspan="1">如果不支援 HAVING 的 SQL 語法，則設定為「yes」。Tableau 或許可以使用子查詢解決此問題。另請參閱：CAP_QUERY_SUBQUERIES。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_INCLUDE_GROUP_BY_COLUMNS_IN_SELECT</td><td colspan="1" rowspan="1">設定為「yes」以要求所有 GROUP BY 運算式還顯示在 SELECT 運算式清單中。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_JOIN_ACROSS_SCHEMAS</td><td colspan="1" rowspan="1">如果 SQL 查詢可以表示位於不同架構中的表之間的聯接，則設定為「yes」。</td></tr><tr><td>CAP_QUERY_JOIN_ASSUME_CONSTRAINED</td><td>設定為「yes」以便即使在資料庫表沒有 FK-PK 關係的情況下也剔除內部聯結。</td></tr><tr><td>CAP_QUERY_JOIN_PUSH_DOWN_CONDITION_EXPRESSIONS</td><td>設定為「yes」以便重寫聯接將 ON 子句條件簡化為簡單的識別字比較。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_JOIN_REQUIRES_SCOPE</td><td colspan="1" rowspan="1">如果 SQL 查詢必須將每個聯接子句用括弧括起來以確保正確的計算順序，則設定為「yes」。</td></tr><tr><td>CAP_QUERY_JOIN_REQUIRES_SUBQUERY</td><td>設定為「yes」以強制包括超過兩個表的聯接運算式由子查詢構成。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_NULL_REQUIRES_CAST</td><td colspan="1" rowspan="1">如果資料來源要求將所有 NULL 文本轉換為顯式資料類型，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_SELECT_ALIASES_SORTED</td><td colspan="1" rowspan="1">如果 Tableau 必須對 SELECT 運算式施加確定順序（按別名排序）以確保查詢結果可以正確地與 Tableau 視覺效果中的每個欄位匹配，則設定為「yes」。只有隨查詢結果返回中繼資料時沒有保留 SELECT 運算式的別名的資料來源，才必須這麼做。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_SORT_BY_DEGREE</td><td colspan="1" rowspan="1">如果 SQL 查詢可以透過每個欄的序號位置引用排序欄（例如 ORDER BY 2, 5），則設定為「yes」。另請參閱：CAP_QUERY_GROUP_BY_DEGREE。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_SUBQUERIES</td><td colspan="1" rowspan="1">如果資料來源支援子查詢，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_SUBQUERIES_WITH_TOP</td><td colspan="1" rowspan="1">如果資料來源支援子查詢中的 TOP 或 LIMIT 列限制子句，則設定為「yes」。</td></tr><tr><td>CAP_QUERY_SUBQUERY_DATASOURCE_CONTEXT</td><td>設定為「yes」以使用子查詢篩選的查詢上下文來實施資料來源篩選器。僅 Tableau 8.0 至 Tableau 9.3 中提供了此功能。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_SUBQUERY_QUERY_CONTEXT</td><td colspan="1" rowspan="1">設定為「yes」以強制 Tableau 使用上下文篩選器的子查詢而非臨時表或本地緩存的結果。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_TOP_N</td><td colspan="1" rowspan="1">如果資料來源支援任何形式的列限制子句，則設定為「yes」。下面介紹了受支援的確切形式。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_TOPSTYLE_LIMIT</td><td colspan="1" rowspan="1">如果資料來源使用 LIMIT 作為列限制子句，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_TOPSTYLE_ROWNUM</td><td colspan="1" rowspan="1">如果資料來源支援 ROWNUM 上的 Oracle 樣式的篩選器作為列限制子句，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_QUERY_TOPSTYLE_TOP</td><td colspan="1" rowspan="1">如果資料來源使用 TOP 作為列限制子句，則設定為 [yes] 。</td></tr><tr><td>CAP_QUERY_USE_QUERY_FUSION</td><td>設定為「no」以防止 Tableau 將多個單獨的查詢合併為一個合併的查詢。為了優化效能，或者，如果資料庫無法處理大型查詢，請關閉此功能。此功能預設情況下已啟用，並且在 Tableau 9.0 及更高版本中可用於除 Tableau 資料擷取外的所有資料來源。Tableau 9.0.6 中支援為 Tableau 資料擷取使用此功能。</td></tr><tr><td colspan="1" rowspan="1">CAP_SELECT_INTO</td><td colspan="1" rowspan="1">如果 Tableau 可以從其他查詢的結果集動態建立表，則設定為「yes」。另請參閱：CAP_CREATE_TEMP_TABLES。</td></tr><tr><td colspan="1" rowspan="1">CAP_SELECT_TOP_INTO</td><td colspan="1" rowspan="1">如果 Tableau 在以查詢結果集建立表格時可以使用 TOP 或 LIMIT 列限制子句，則設定為「yes」。</td></tr><tr><td colspan="1" rowspan="1">CAP_SET_ISOLATION_LEVEL_VIA_SQL</td><td colspan="1" rowspan="1">設定為「yes」以強制 Tableau 使用 SQL 查詢為資料來源設定事務隔離層級。當 4 個 CAP_ISOLATION_LEVEL 功能中的任一個設定為「yes」時，CAP_SET_ISOLATION_LEVEL_VIA_SQL 必須設定為「yes」。</td></tr><tr><td>CAP_STORED_PROCEDURE_PREFER_TEMP_TABLE</td><td>設定為「yes」以使用臨時表來支援預存程序結果集上的遠端查詢。</td></tr><tr><td>CAP_STORED_PROCEDURE_REPAIR_TEMP_TABLE_STRINGS</td><td>設定為「yes」以在中繼資料指明無寬度或非正寬度的情況下嘗試計算實際字串寬度。</td></tr><tr><td>CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_BUFFER</td><td>設定為「yes」以透過整體緩衝的結果集填充臨時表。</td></tr><tr><td>CAP_STORED_PROCEDURE_TEMP_TABLE_FROM_NEW_PROTOCOL</td><td>設定為「yes」以透過僅為此操作建立的單獨協定填充臨時表。</td></tr><tr><td colspan="1" rowspan="1">CAP_SUPPRESS_DISCOVERY_QUERIES</td><td colspan="1" rowspan="1">設定為「yes」以阻止 Tableau 檢測各種子句的受支援的 SQL 語法。</td></tr><tr><td colspan="1" rowspan="1">CAP_SUPPRESS_DISPLAY_LIMITATIONS</td><td colspan="1" rowspan="1">設定為「yes」以抑制顯示有關此資料來源的限制的任何警告。</td></tr></tbody></table>

### 另請參閱

[其他資料庫 (JDBC)](https://help.tableau.com/current/pro/desktop/zh-tw/examples_otherdatabases_jdbc.htm) – 描述如何使用其他資料庫 (JDBC) 連接器連線到資料。