-583   THE USE OF FUNCTION OR EXPRESSION name IS INVALID BECAUSE IT IS NOT DETERMINISTIC OR HAS AN EXTERNAL ACTION

説明

関数 name が、非 deterministic 関数、または外部アクションを伴う関数として定義されているか、または式 name が非 deterministic 式として定義されています。このタイプの関数または式は、これが使用されるコンテキストにおいては、サポートされていません。 上記の関数が無効なコンテキストは次の通りです。

  • 単純ケース式の最初の WHEN キーワードの前の式の中
  • WITH CHECK OPTION が指定されている場合の、CREATE VIEW ステートメントの全選択の WHERE 文節の中
  • ORDER BY 文節の式の中
  • 索引定義のキー式の中
  • GROUP BY 文節の式の中
  • 配列の索引の値を生成する式の中
  • OFFSET 節または FETCH FIRST 節の中
  • row-value-expression の中 (比較演算子が <、<=、>、または >= の場合)

システムの処置

このステートメントを処理することはできません。

プログラマーの応答

非 deterministic 関数あるいは外部アクション関数または式を使用する意図がなかった場合は、それらの特性を持たない関数または式を代わりに使用します。非 deterministic 関数あるいは外部アクション関数または式に関連する振る舞いが意図されている場合は、その意図を明示するステートメントのフォームを使用してください。

  • simple-when-clause ではなく、関数または式が各検索条件で指定される、対応する searched-when-clause を使用します。
  • WITH CHECK OPTION を CREATE VIEW ステートメントから除去してください。
  • 関数または式を ORDER BY 文節から除去します。列が照会の結果セットの一部である場合は、ORDER BY 文節の式を、 ソート・キーの simple-integer または simple-column-name のフォームに変更してください。
  • 関数または式を GROUP BY 文節から除去します。
  • 配列の索引の値を生成する式を除去します。
  • 式を OFFSET 文節または FETCH FIRST 文節から除去します。
  • row-value-expression 内の比較演算子を変更するか、または row-value-expression での比較を除去します。

SQLSTATE

42845