ユーザー定義問合せのトラブルシューティング
ユーザー定義問合せを作成する場合、結果にレコードがないなどの問題または無効な式がある可能性があります。 問題が発生した場合にチェックする事項は次のとおりです。
ユーザー定義問合せでレコードが返されない場合
ユーザー定義問合せでレコードが返されない場合、その出力はnullになります。 nullを返す式は0の値にデフォルト設定されます。 これを回避するには、ユーザー定義問合せにNVL関数を使用します。 次に、値を返さないユーザー定義問合せUserDefinedQuery()
を含む式からの支給計算出力結果の例を示します。
式 |
利益計算の出力 |
---|---|
|
0 (ユーザー定義問合せはnullを返しますが、式は0にデフォルト設定されます) |
|
0 (この式はnullを戻しますが、利益金額は0にデフォルト設定されます) |
|
0 |
|
4 |
|
TRUE |
式が無効
ユーザー定義の問合せを含む式があり、式が無効です。 これらの原因を確認してください。
-
様々なデータ型に対する数学的演算を使用しましたか。 たとえば、数値を返すユーザー定義問合せは、文字列である
Participant.Currency Code
に追加できません。 -
残りの式コンポーネントと一致するように、ユーザー定義問合せの周囲に集計関数を使用または削除する必要があるかどうかを確認します。 たとえば、MAX集計関数をこの式
SUM (Credit.Credit Amount) + MAX ( SUM_VALUE_SET ( UserDefinedQuery () ) )
に追加する必要があります。 -
ユーザー定義問合せに渡される入力の数、順序およびデータ型が、その値セットで使用されるSQL問合せと一致するかどうかを確認します。
-
その値セットで使用されるSQL問合せに、その入力の順序(:1, :2)として連続する自然数があるかどうかを管理者に確認します。
-
値セット集計関数にユーザー定義問合せのみが入力として含まれていることを確認します。 ユーザー定義関数を渡すことはできません。
-
CHOICE関数の外部で使用されている論理演算子をブールで返しましたか。
-
論理演算に渡される入力の数またはデータ型を確認します。