6.5 Oracle DatabaseタイプのPGXタイプへのマッピング

データベースのグラフがグラフ・サーバー(PGX)にロードされるときに、入力したOracleデータベース・タイプが対応するPGXタイプにどのようにマップされるかについて学習します。

次の表は、SQLプロパティ・グラフとPGQLプロパティ・グラフの両方に適用されます。

表6-1 Oracle DatabaseタイプのPGXタイプへのマッピング

Oracle Databaseタイプ脚注1 PGXタイプ
NUMBER 次の暗黙的な型変換ルールが適用されます。
  • NUMBER => LONG (キー列の場合)
  • NUMBER => DOUBLE (非キー列の場合)
  • NUMBER(m) (精度mを持つ数値) ( m <= 9 => INTEGER)
  • NUMBER(m) (精度mを持つ数値) (9 < m <= 18 => LONG)
  • NUMBER(m,n) (精度mおよびスケールnを持つ数値) => DOUBLE

    これは、n > 0の場合に適用されることに注意してください。それ以外の場合は、NUMBER(x)と同じマッピング(x = m-n、つまり精度からスケールを減算)に従います。PGXタイプは、次に示すようにx値に応じて異なる場合があります:

    • x <= 9 => INTEGER
    • 9 < x <= 18 => LONG
    • x > 18 => DOUBLE

      たとえば、n = -100m = 1のシナリオを考えてみます。この場合、x = 101 (m-n)は18より大きい値です。非常に大きい数値は、INTEGERまたはLONGに収まるようにエンコードできないため、DOUBLEデータ型が必要です。

CHARまたはNCHAR STRING
VARCHARVARCHAR2またはNVARCHAR2 STRING
BINARY_FLOAT FLOAT
BINARY_DOUBLE DOUBLE
FLOAT 次の暗黙的な型変換ルールが適用されます。
  • FLOAT(m) with m <= 23 => FLOAT
  • FLOAT(m) with 23 < m => DOUBLE

前述のエントリでは、mは精度の変数です。

CLOB STRING
DATEまたはTIMESTAMP TIMESTAMP
TIMESTAMPWITHLOCALTIMEZONE TIMESTAMP
TIMESTAMPWITHTIMEZONE TIMESTAMPWITHTIMEZONE

脚注1 PGQLプロパティ・グラフおよびSQLプロパティ・グラフのデータ型は、Oracle Databaseデータ型と1対1のマッピングを共有します。