A.12.1 プロパティ・グラフ・スキーマでサポートされているPGQL機能

PGQLは、プロパティ・グラフ・データの問合せを行うための、SQLに似た問合せ言語です。これは、グラフのパターン一致の概念に基づいており、これを使用して、特にトポロジ制約、パス、フィルタ、ソート、および集計を指定できます。

oracle.pg.rdbms.pgqlパッケージに定義されているPGQL用のJava APIは、いくつかの例外付きでPGQL 仕様をサポートします。(PGQL Specificationを参照してください)。

次の表に、サポート対象およびサポート対象外のPGQL機能のリストを示します:

表A-1 PGスキーマ・グラフでサポートされているPGQL機能および制限事項

機能 PGスキーマ
CREATE PROPERTY GRAPH サポート対象
DROP PROPERTY GRAPH サポート対象
固定長パターン一致 サポート対象
可変長パターン一致の目標 サポート対象:
  • 到達可能性
  • パス検索接頭辞:
    • ANY
    • ANY SHORTEST
    • SHORTEST k
    • ALL SHORTEST
    • ANY CHEAPEST
    • CHEAPEST k
    • ALL
  • パス・モード:
    • WALK
    • TRAIL
    • SIMPLE
    • ACYCLIC
可変長パターン一致の数量詞 サポート対象:
  • *
  • +
  • ?
  • { n }
  • { n, }
  • { n, m }
  • { , m }
可変長パスのネスト解除 サポート対象外
GROUP BY サポート対象
HAVING サポート対象
集計 サポート対象:
  • COUNT
  • MINMAXAVGSUM

制限事項:

  • LISTAGG
  • ARRAY_AGG
DISTINCT
  • SELECT DISTINCT
  • DISTINCTを使用した集計(COUNT(DISTINCT e.prop)など)
サポート対象
SELECT v.* サポート対象外
ORDER BY (+ASC/DESC)、LIMIT、OFFSET サポート対象
データ型 サポート対象:
  • NVARCHAR2(15000)
  • NUMBER
  • BOOLEAN (NVARCHARのように格納されます)
  • TIMESTAMP(6)WITH TIME ZONE
JSON 組込みのJSONサポートはありません。ただし、JSON文字列(VARCHAR2)をNVARCHAR2(15000)データ型にマップできます。
演算子 サポート対象:
  • 関係: +-*/%- (単項マイナス)
  • 算術: =<><><=>=
  • 論理: ANDORNOT

制限事項:

  • 文字列: || (concat)
関数および述語 サポート対象:
  • IS NULLIS NOT NULL
  • JAVA_REGEXP_LIKE (CONTAINSに基づいています)
  • ABSCEIL/CEILINGFLOORROUND
  • EXTRACT
  • ID
  • VERTEX_IDEDGE_ID
  • LABELIS [NOT] LABELED
  • ALL_DIFFERENT
  • IN_DEGREEOUT_DEGREE
  • CAST
  • CASE
  • INNOT IN
  • VERTEX_EQUALEDGE_EQUAL

制限事項:

  • LOWERUPPER
  • SUBSTRING
  • LABELS
  • IS [NOT] SOURCE [OF]IS [NOT] DESTINATION [OF]
ユーザー定義関数 サポート対象外
副問合せ:
  • スカラー副問合せ
  • EXISTSおよびNOT EXISTS副問合せ
  • LATERAL副問合せ
サポート対象:
  • EXISTSおよびNOT EXISTS副問合せ
  • スカラー副問合せ

制限事項:

  • LATERAL副問合せ
GRAPH_TABLE演算子 サポート対象外
INSERT/UPDATE/DELETE Oracle Database 19c以降でサポート
INTERVALリテラルおよび操作 サポート対象外

次に、特別な考慮事項を必要とするPGQL機能をいくつか示します。