---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# ODBC の動作

# ODBC の動作 {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：3分

ODBC ドライバーをテストした後、それを使用して、さまざまなクライアントアプリケーションからインスタンスデータベースをクエリーできます。

## ODBC 集計関数 {#r_ODBCBehavior__section_k4m_fbc_vbb}

ODBC Driver はデータのダウンロードとローカルへの集計関数の適用を試行します。ODBC Driver は次の集計関数をサポートしています。

* COUNT
* SUM
* MIN
* MAX
* AVG

{#r_ODBCBehavior__ul_p2l_3bc_vbb}

集計 Web サービスプラグインをアクティブ化して、ODBC ドライバーを介した集計クエリのパフォーマンスを向上させます。

## ODBC 日付と時刻の値 {#r_ODBCBehavior__section_jjq_4bc_vbb}

インスタンスと ODBC Driver がインストールされているマシンは、2 つの異なるタイムゾーンを使用する場合があります。ODBC Driver によって返される日付と時刻の値は ServiceNow インスタンスのタイムゾーンではなく、ドライバーを使用するアプリケーションのローカルタイムゾーンです。

インスタンスと ODBC Driver をホストするマシンの両方に対して、必ず正確なタイムゾーンでクエリしてください。GlideRecord はインスタンスのタイムゾーンに基づいてフィルタリングを実行し、ODBC クライアントは Windows のタイムゾーンに基づいてフィルタリングされます。

たとえば、インスタンスが中部標準時 (CST) で、ODBC Driver が太平洋標準時 (PST) のマシンにインストールされている場合があります。インシデントが 2014-05-20 10:00:00 にインスタンスで作成されると、インシデントが作成された時間は両方のタイムゾーンのユーザーに 10:00:00 と表示されます。ただし、作成日時でこのインシデントを正常にクエリするには、PST のマシンのユーザーは 2014-05-20 10:00:00 ではなく、2014-05-20 08:00:00 をクエリする必要があります。

期間とタイマータイプのフィールドは、ODBC バージョン 1.0.10 以降、UTC タイムゾーンを使用して返されます。この変更の詳細については、「[KB0583982](https://support.servicenow.com/kb_view.do?sysparm_article=KB0583982)」を参照してください。

## ODBC 表示値 {#r_ODBCBehavior__section_mks_gcc_vbb}

ODBC 表示値の使用方法と操作方法の例を以下に示します。

* \[選択肢\] 列と \[参照\] 列の表示値：

  タイプが \[選択肢\]、\[参照\]、\[期間\]、または \[タイマー\] の列をクエリする場合、表示値を含むプリフィックス `dv_` の追加の列を使用できます。たとえば、\[dv_caller_id\] を選択すると、sys_user テーブルに別の要求を行うことなく、インシデントレコードから参照フィールドの \[sys_user.name\] 表示値を返すことができます。  
  図 : 1. 表示値を返す
* フィルター条件の表示値：表示値はフィルター条件でも使用できます。ODBC Driver はクエリ条件を最適化し、サーバー上のフィルターを処理します。たとえば、\[dv_caller_id\] フィールド名を使用して、インシデントの \[caller_id\] フィールドに対する \[sys_user\] の表示値をクエリします。

  図 : 2. フィルター条件の表示値
* 集計クエリの表示値：集計クエリでは、group by または where 句で値を指定する場合に表示値を利用できます。たとえば、インシデントの \[caller_id\] フィールドのグループ化や、それに対するフィルターの指定などです。クエリはサーバーに渡されることによって最適化されます。

  図 : 3. 集計クエリの表示値
{#r_ODBCBehavior__ul_lzl_mcc_vbb}

## テーブル名と列名のクエリ {#r_ODBCBehavior__section_fw5_xfc_vbb}

クエリユーザーの読み取り ACL に基づいて、アクセス可能なテーブルと列のリストを取得できます。

* 次のクエリは、クエリを実行しているユーザーが読み取りアクセス権を持つすべてのテーブルの名前を返します。`select * from oa_tables;`

* クエリするテーブルの名前がわかっている場合、ユーザーが読み取りアクセス権を持つすべての列の名前をクエリできます。クエリユーザーはテーブルと列の両方の読み取りアクセス権を持っている必要があります。`select * from oa_columns where table_name='table_name';`

{#r_ODBCBehavior__ul_xqb_dgc_vbb}  
注:  
oa_tables テーブルと oa_columns テーブルは内部 ODBC テーブルです。これらのテーブルは ODBC Driver を介してのみアクセスできます。

## 読み取りレプリカへの ODBC 呼び出しのルーティング {#r_ODBCBehavior__section_uhx_2hy_sxb}

クエリルーティングは、プライマリ DB で多数の DB CPU サイクルを消費する SELECT クエリのプライマリデータベースの負荷を軽減するために実行されます。詳細については、「 [ServiceNow 読み込みレプリカデータベースの概要](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0824441)」を参照してください。

ODBC 呼び出しをリードレプリカにルーティングするには、 すべてセカンダリデータベースセカンダリ DB カテゴリ をクリックし、 ODBC を <kbd class="ph userinput">true</kbd> に設定します。
* **[SQL クエリのフィールド長の拡張](https://servicenow-prod.fluidtopics.net/mOy98VRWJNukr2hbwVb0RQ)**   
  ODBC Driver は、ServiceNow 辞書エントリで定義された最大長に SQL クエリのフィールド長を制限します。データの切り捨てを避けるために、最大フィールド長を増やすことができます。

