ODBC の動作
ODBC ドライバーをテストした後、それを使用して、さまざまなクライアントアプリケーションからインスタンスデータベースをクエリできます。
ODBC 集計関数
ODBC Driver はデータのダウンロードとローカルへの集計関数の適用を試行します。ODBC Driver は次の集計関数をサポートしています。
- COUNT
- SUM
- MIN
- MAX
- AVG
Aggregate Web サービスプラグインをアクティブ化して、ODBC ドライバーによる集計クエリのパフォーマンスを向上させます。
ODBC 日付と時刻の値
インスタンスと 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」を参照してください。
ODBC 表示値
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. 集計クエリの表示値
テーブル名と列名のクエリ
クエリユーザーの読み取り ACL に基づいて、アクセス可能なテーブルと列のリストを取得できます。
- 次のクエリは、クエリを実行しているユーザーが読み取りアクセス権を持つすべてのテーブルの名前を返します。
select * from oa_tables; - クエリするテーブルの名前がわかっている場合、ユーザーが読み取りアクセス権を持つすべての列の名前をクエリできます。クエリユーザーはテーブルと列の両方の読み取りアクセス権を持っている必要があります。
select * from oa_columns where table_name=‘table_name’;
読み取りレプリカへの ODBC 呼び出しのルーティング
クエリルーティングは、プライマリ DB で多数の DB CPU サイクルを必要とする SELECT クエリのプライマリデータベースの負荷を軽減するために行われます。詳細については、「 ServiceNow 読み込みレプリカデータベースの概要」を参照してください。
ODBC 呼び出しを読み込みレプリカにルーティングするには、 ODBC をtrue に設定します。