ODBCドライバの使用時の注意事項について説明します。
Navigatorから利用可能なすべてのODBCドライバの利用時の注意について説明します。
データ型
Navigatorのデータ型と、ODBCのデータ型との対応を以下に示します。ODBCドライバが各DBMSのデータ型をODBCのデータ型に変換する規則については各ODBCドライバのヘルプ・マニュアルなどで確認してください。
利用不可のデータ型の項目を含むテーブルの場合、利用不可のデータ型の項目を除いて利用することができます。
ODBCドライバのデータ型 | Navigatorのデータ型 | |
---|---|---|
整数型 | SQL_INTEGER | INTEGER |
SQL_SMALLINT | SMALLINT | |
SQL_TINYINT | SMALLINT | |
SQL_BIGINT | DECIMAL(20,0) | |
概数型 | SQL_FLOAT | FLOAT |
SQL_DOUBLE | FLOAT | |
SQL_REAL | 利用不可 | |
真数型 | SQL_DECIMAL(p,q)(0<=q<=p) | DECIMAL(p,q) |
SQL_NUMERIC(p,q)(0<=q<=p) | NUMERIC(p,q) | |
SQL_DECIMAL(p,q)(q>p) | DECIMAL(q,q) | |
SQL_NUMERIC(p,q)(q>p) | NUMERIC(q,q) | |
SQL_DECIMAL(p,q)(q<0) | DECIMAL(p-q,0) | |
SQL_NUMERIC(p,q)(q<0) | NUMERIC(p-q,0) | |
文字型 | SQL_CHAR(n) | CHARACTER(n) |
SQL_VARCHAR (n) | VARCHAR(n) | |
SQL_LONGVARCHAR | 利用不可 | |
日付時刻型 | SQL_DATE | CHARACTER(10) |
SQL_TIME | CHARACTER(8) | |
SQL_TIMESTAMP | CHARACTER(19) | |
特殊型 | SQL_BIT | 利用不可 |
SQL_BINARY | 利用不可 | |
SQL_VARBINARY | 利用不可 | |
SQL_LONGVARBINARY | 利用不可 | |
その他の型 | 利用不可 |
なお、データの中に「改行のコード」や「タブのコード」などがある項目は、利用できません。このような項目を含む場合は、その項目を除いて利用してください。
データ型の注意事項
SQL_CHAR、SQL_VARCHAR、SQL_DECIMAL、またはSQL_NUMERICの最大精度は、各ODBCドライバの仕様に依存します。しかし、38桁を超える精度のSQL_DECIMAL型、SQL_NUMERIC型は、Navigatorでは利用できません。
また、集合関数や演算結果をSQL_DECIMALやSQL_NUMERICで返却するDBMSの場合、38桁を超える結果データが発生すると、オーバフローや丸めによる誤差の原因となることがあります。
Navigatorで利用するテーブルに必要な権限
Navigatorで利用するデータソースのテーブルには、接続するNavigatorユーザへのSELECT権を設定してください。
名称と名称の文字種
スキーマ名、テーブル名、および項目名として使用できる名称は、半角文字だけ、または全角文字だけの名称です。データソース名として使用できる名称は、半角文字だけの名称です。使用できる名称の規則を、以下に示します。
半角文字だけの名称
以下の半角文字だけを使用した名称です。
英大文字
英小文字
数字
アンダースコア「_」
シャープ「#」
ただし、1文字目が数字の名称は、使用できません。
全角文字だけの名称
全角文字だけを使用した名称です。
なお、各ODBCドライバの制限により、これらの文字だけからなる識別子も使用できない場合があります。
以下に示す名称は、スキーマ名、テーブル名、項目名、およびデータソース名として使用できません。
Navigatorの予約語と同じ名称
半角のKVRで始まる名称
半角のカタカナ
Navigatorで使用できるスキーマ名、テーブル名、項目名の名称の長さには以下の制限があります。
半角文字だけの名称は36バイトまで
全角文字だけの名称は36バイトまで
またスキーマ名を修飾するODBCのカタログ名の長さは最大252バイトまで利用できます。
ツール機能のスキーマの追加、およびテーブルの追加の一覧には、Navigatorで使用できない名称の資源も表示されますが、選択しないでください。
テーブルの項目名に使用できない名称が含まれる場合、そのテーブルは使用できません。
制限事項
ODBCドライバを利用する場合、以下の機能は制限されます。
システム運用機能
Navigatorサーバのクラスタ運用
Navigatorサーバの負荷分散
データマート生成
マートバッチ
データマートの管理
データ登録ツール
データ登録
クライアント機能
二次加工
時間演算
ご使用のODBCドライバやODBCドライバのバージョンにより、複合コードが利用できないことがあります。
表の結合は、接続したデータソース(Navigatorでの接続単位としての1データソース)内だけで行うことができます。
NavigatorではSQL_TIME、SQL_TIMESTAMP型での小数秒は扱えません。
Navigatorで使用する項目には、できるだけ小数秒を格納しない(すべてのデータの小数秒が0)ようにしてください。また、使用前には、項目に0以外の小数秒が格納されていないか確認してください。
DBMSの項目にデータの小数秒まで格納している場合、以下のような問題があります。
実際にDBMSには小数秒まで格納されていても、Navigatorが表示するデータには秒までしか表示されません。
小数秒が0でないデータが格納されている項目に、マスタ型、または全値型、任意のカテゴリ型の管理ポイントを定義すると、小数秒が0のデータだけ集計され、結果が意図したものと異なる場合があります。
ODBCドライバではDBMSの仕様に依存して、指定された小数秒省略の定数を小数秒0のデータが指定されたとみなす場合があります。このようなODBCドライバでの問い合わせでの項目の条件指定で、条件を指定する場合以下の注意が必要です。
小数秒が0以外のデータが格納されている項目の一致指定による検索は、小数秒まで指定しない限り、小数秒が0のデータしか該当しません。
範囲指定の条件で上限値、および下限値の条件を指定する場合、小数秒の扱いを意識してください。条件に指定する"yyyy-mm-dd"形式の定数には、000という小数秒が付加され、小数秒までが比較の対象となります。
上限値、および下限値に対する条件により、以下の例に示す結果になります。
使用するデータ
以下のような3桁の小数秒の格納された項目の場合
DBMSのデータ | Navigatorの表示 |
---|---|
2005-10-10 10:10:10.000 | 2005-10-10 10:10:10 |
条件の指定
2005-10-10 の10時10分10秒台を除外し、10:10:11秒台を含めるデータを検出するためには、以下のように条件を指定します。
2005-10-10 10:10:10"より大きく"
2005-10-10 10:10:11"以下"
結果
結果は以下のように、意図したものと異なります。
DBMSのデータ | Navigatorの表示 |
---|---|
2005-10-10 10:10:10.001 | 2005-10-10 10:10:10 |
2005-10-10 10:10:10.001以上のデータは検索結果に含まれ、2005-10-10 10:10:11.001以上のデータは含まれないという結果になります。
これはODBCドライバが、指定されない小数秒に0を埋め込み、小数秒を含めた比較を行うためです。(例では2005-10-10 10:10:10.000"より大きく"2005-10-10 10:10:11.000"以下"という比較になります。)
このような場合、誤解のないように小数秒を明確に指定するか、上限値は未満、下限値は以上で範囲指定を行ってください。
SAP IQ用のODBCドライバの利用時の注意について説明します。
名称と名称の文字種
SAP IQで以下の文字列で囲む必要がある名称は、スキーマ名、テーブル名、項目名、およびデータソース名として使用できません。
二重引用符
[ ](角括弧)
制限事項
Navigatorでは、名標の大文字小文字は区別して扱います。そのため、SAP IQの設定についても、必ず、名標の大文字小文字の区別をする設定になっていることを確認してください。
なお、初期値は、大文字小文字を区別するように設定されています。
Navigatorで利用できる照合順序は、以下のとおりです。
Windowsの場合
932JPN
UNIXの場合
「Shift-JIS」の場合
932JPN
「EUC」の場合
EUC_JAPAN
「UTF-8」の場合
UTF8BIN
データの最後が空白で終わるデータがある場合、Navigatorでは、当該空白が取り除かれたデータとして扱われます。
データに「\」または、バックスラッシュが含まれるデータは、Navigatorでは、利用できません。
Navigatorクライアントの以下の画面で、「\」または、バックスラッシュを入力しないでください。
[条件の指定]画面
[カテゴリの読み込み]画面
DataDirect Connect ODBCドライバを利用する場合は、“1.2.9.1 ODBCドライバ共通の注意事項”を参照の他に、以下の点を考慮します。
SQL_TIME、SQL_TIMESTAMP型に小数秒を含む場合の注意
SQL_TIME、SQL_TIMESTAMP型に小数秒を含む一部のドライバは、特別な注意が必要です。詳細は“1.2.9.1 ODBCドライバ共通の注意事項”の記述を参照してください。
「データの規則性でカテゴリを定義する管理ポイント」の注意
利用するドライバによっては、特定のデータ型の管理ポイント定義が機能未サポートにより、エラーとなる場合があります。
SQL_DATE、SQL_TIME、SQL_TIMESTAMP型のデータを文字列形式に変換した場合にNavigatorの予定する形式(SQL_DATE型では"YYYY-MM-DD"、SQL_TIME型では"HH:MM:SS"、SQL_TIMESTAMP型では"YYYY-MM-DD HH:MM:SS")以外の形式に変換するドライバでは、エラーになりませんが、正しい集計結果が得られません。
事前にツール機能で、SQL_DATE、SQL_TIME、SQL_TIMESTAMP型の文字抽出演算項目のデータ全長が抽出されるように作成し、サンプル表示などによりデータを表示した結果が、Navigatorの予定する形式か確認してください。Navigatorの予定する形式ではない場合、管理ポイントを作成しないでください。
演算項目の文字演算での部分抽出に指定する「文字数」を、バイト数ではなく文字数として計算するドライバの場合、マルチバイト文字データを含む項目は正しく集計されません。マルチバイト文字データを含む項目に対し抽出演算項目を作成し、公開前に問い合わせを行うなどして、マルチバイト文字データを含むデータが指定どおり抽出されることを確認してください。抽出されない場合、このような項目に対して、「データの規則性でカテゴリを定義する管理ポイント」は作成しないでください。
文字演算での抽出演算の注意
文字演算での抽出演算は、以下のドライバで利用できない場合があります。
ドライバが、特定のデータ型について「文字演算での抽出演算」を実現するのに必要な、ODBCインタフェース上の機能をサポートしていない場合、演算の実行時にエラーとなります。
演算項目の文字演算での部分抽出に指定する「文字数」を、バイト数ではなく文字数として計算するドライバの場合、マルチバイト文字データを含む項目は正しく集計されません。マルチバイト文字データを含む項目に対し、抽出演算項目を作成する場合には、公開前に問い合わせを行うなどして、マルチバイト文字データを含むデータが、指定どおり抽出されることを確認してください。
SQL_DATE、SQL_TIME、SQL_TIMESTAMP型項目検索の注意
ドライバの種類により、SQL_DATE、SQL_TIME、SQL_TIMESTAMP型項目の検索条件の指定について、以下の注意が必要となる場合があります。
ドライバが特定のデータ型について、「先頭が一致するデータ」、「どこか一部分が一致するデータ」、「末尾が一致するデータ」による検索を実現するのに必要なODBCインタフェース上の機能をサポートしていない場合、検索実行時にエラーとなります。
SQL_DATE、SQL_TIME、SQL_TIMESTAMP型について「先頭が一致するデータ」、「どこか一部分が一致するデータ」、「末尾が一致するデータ」による検索を行う場合には、これらのデータを文字列形式に変換した結果について、指定された検索条件による絞り込みを行います。
ドライバの中には、通常の問い合わせ結果の形式と文字列形式に変換した結果の形式が異なるものがあります。これらの検索を行う場合に限り、文字列形式に変換した結果の形式で、絞り込み条件に指定する必要があります。
演算項目などの集計の制限
ドライバ固有の機能制限により、使用しているドライバの種別によっては、単項目以外(演算項目など)について、以下の集計がエラーとなり利用できません。
平均、件数(NULL値を除く、NULL値、重複を除く)、分散、標準偏差、標準誤差、尖度、歪度
SQL_VARCHAR型データ後方空白の制限
ドライバ固有の仕様により、SQL_VARCHAR型データの比較で、後方空白を比較対象に含むドライバがあります。このようなドライバでは、後方空白をデータに含まないようにしてください。管理ポイントの処理や比較処理で、後方空白を持つデータが正しく検索されないことがあります。
「NULL値のみ」、「NULL値を除くすべて」による検索の制限
ドライバ固有の機能制限により、条件の指定における「NULL値のみ」、「NULL値を除くすべて」は単項目以外(演算項目など)に指定できないものがあります。
ドライバの定量制限
ドライバによっては、実行できるSQL文の最大長や同時に実行できるSQL文数、表数、または項目数を制限しているため、非常に多数のカテゴリから構成される管理ポイントを指定した場合や、多くのデータ項目を指定した場合などにエラーとなる場合があります。
複合コードの制限
ODBCドライバ固有の機能制限や固有仕様のために、特定のデータ型の項目だけがエラーとなる場合や、連結結果のデータの形式が、Navigatorが予定するものと異なってしまう場合があります。複合コードを利用する場合には、これらの問題がないか事前に確認してください。