@GENERATEDディレクティブ
@generatedディレクティブは、表の既存のフィールド/列またはSQL式からフィールドを生成します。
@generatedディレクティブは、オプションの引数pathまたはsqlと、そのJSONフィールド値の計算に使用される値を受け取ります。パス値は、SQL/JSONパス式です。sqlの値は、SQL式または問合せです。GraphQL表関数を使用する場合、サポートされている引数はsqlのみです。path引数は、二面性ビューの作成にのみ使用できます。
ノート:
- 生成されたフィールドは、二面性ビューとGraphQL表関数の両方によって生成されるドキュメントを拡張します。これらのフィールドは、基礎となる列に直接マップされるのではなく計算され、常に読取り専用です。
- 生成されたフィールドには列名がありません。別名によってのみ参照できます。
次の例では、sql式を使用してレースの月を検索します:
SELECT JSON_SERIALIZE(data PRETTY) AS data FROM GRAPHQL('
race {
id: race_id
name
month @generated(sql: "regexp_substr(race_date, ''[^-]+'', 1, 2)")
}
');
これは、レースの月を含む次の出力を生成します:
DATA
--------------------------------------------------------------------------------
{
"id" : 201,
"name" : "Bahrain Grand Prix",
"month" : "MAR"
}
{
"id" : 202,
"name" : "Saudi Arabian Grand Prix",
"month" : "MAR"
}
{
"id" : 203,
"name" : "Australian Grand Prix",
"month" : "MAR"
}
{
"id" : 204,
"name" : "Japanese Grand Prix",
"month" : "APR"
}
.......................
.......................
24 rows selected.