assert()
適用対象: ✅Microsoft Fabric✅Azure データ エクスプローラー✅Azure Monitor✅Microsoft Sentinel
条件をチェックします。 条件が false の場合、エラー メッセージが出力され、クエリは失敗します。
Note
assert
関数は、定数折りたたみや述語の短絡などの最適化が適用される前に、クエリ分析フェーズ中に評価されます。
Note
assert
に指定されたパラメーターは、クエリ分析フェーズ中に定数に評価する必要があります。 つまり、定数のみを参照する他の式から構築でき、行コンテキストにバインドすることはできません。
構文
assert(
condition,
message)
構文規則について詳しく知る。
パラメーター
件名 | タイプ | Required | 説明 |
---|---|---|---|
condition | bool |
✔️ | 評価する条件式です。 クエリ分析フェーズでは、条件を定数に評価する必要があります。 |
message | string |
✔️ | アサーションが false に評価される場合に使用されるメッセージ。 |
返品
条件がtrue
されている場合は、true
を返します。
条件が false
に評価されると、セマンティック エラーが発生します。
例
次のクエリを使用すると、入力文字列の長さをチェックする checkLength()
関数が定義され、assert
を使用して入力長パラメーターを検証します (これが 0 より大きいことを確認します)。
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and
strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=long(-1), input)
このクエリを実行すると、エラー assert() has failed with message: 'Length must be greater than zero'
が生成されます。
有効な len
入力で実行する例:
let checkLength = (len:long, s:string)
{
assert(len > 0, "Length must be greater than zero") and strlen(s) > len
};
datatable(input:string)
[
'123',
'4567'
]
| where checkLength(len=3, input)
出力
input |
---|
4567 |
次のクエリは常に失敗し、b
がfalse
されたときにwhere b
演算子がデータを返さない場合でも、assert
関数が評価されることを示します。
let b=false;
print x="Hello"
| where b
| where assert(b, "Assertion failed")