ページの先頭行へ戻る
Interstage Navigator ServerV9.6.0 管理者ガイド(辞書管理ツール編)(Standard Edition用)
FUJITSU Software

3.3.1 複合コードについて

複合コードとは、複数の項目をまとめて1つのコードにしたものです。複合コードの各データ項目は、以下の変換規則に従って文字列に変換され、変換された文字列が連結されて1つのコードとなります。

*1:文字型の項目は、左詰めとなります。

*2:日本語文字型の項目は、左詰めとなります。

*3:数値型の項目は、右詰めで前方空白となります。

    長さは、桁数+符号部1バイト(+非表示、-左表示、0値表示)となります。

*4:精度15桁の浮動少数点数に丸められるため、pが15を超える場合、変換後の値に誤差が生じることがあります。

*5:データ長とは、複合コードにより各構成項目のデータが、文字データに変換された場合のバイト単位での長さです。複合コードの全体のデータ長は、それぞれの項目のデータ長の合計となります。

注意

  • 日本語文字型と、それ以外のデータ型の連結はできません。

  • FLOATは、複合コードに使用できません。

  • DECIMAL(p,0)以外のDECIMALは、複合コードに使用できません。

  • NUMERIC(p,0) 以外のNUMERICは、複合コードに使用できません。

  • 連結する項目にNULL値がある場合、データベースによって扱いが異なります。

    • Symfoware/RDBの場合
      どれかの項目にNULL値がある場合、連結結果はNULLとなります。  

    • Oracleの場合
      すべての項目が空白、またはNULL値の場合、連結結果はNULLとなります。
      どれかの項目にNULL値がある場合、NULL値の項目は桁数分の空白に置き換わります。  

    • SQL Serverの場合
      NULLとの連結でNULLを使用する設定となっている場合には、どれかの項目にNULL値がある場合、連結結果はNULLとなります。それ以外の場合には、どれかの項目にNULL値がある場合、NULL値の項目は桁数分の空白に置き換わります。従って、全項目がNULL値の場合の連結結果は、全項目の桁数分の空白となります。

    • ODBCの場合

      NULLおよび空白の扱いは、利用しているドライバおよび接続先のデータベースの仕様に依存します。

    • Postgresの場合

      すべての項目が空白の場合、連結結果は桁数分の空白に置き換わります。いずれかの項目にNULL値がある場合、連結結果は NULLとなります。

  • 複合コードの全体のデータ長が80バイトを超える場合、「プライマリー」,「ユニークコード」および「コード」の用途は設定できません。

  • ODBCドライバで定義したデータソースに対する複合コードの設定は、ODBCドライバのバージョンによっては利用できないことがあります。

  • Unicodeデータ明細表示機能の場合、NCHAR(n)、およびNVARCHAR(n)のデータ長は、「n×3」となります。

  • データベースの文字コードがUnicodeの場合、およびPostgresのデータベースの場合、複合コードに指定する文字型項目にはASCII文字のデータのみを持つ項目が指定可能です。日本語などのASCII文字以外の文字がデータに含まれる項目を指定した場合、期待した結果が得られない場合があります。

項目

データ型

データ長

COL1

CHAR(6)

6

`999999'

COL2

SMALLIN

6

11111

  

  

  

  

結果

CHAR(12)

12

`999999 11111'

上記の例で、 COL2がNULL値のとき

  • Symfoware/RDBの場合

  • SQL Serverの場合

連結結果はNULLとなります。

  • Oracleの場合

  • Postgresの場合

連結結果は`999999 'となります。

  • ODBCの場合

利用しているドライバおよび接続先のデータベースの仕様に依存します。