提供されたコードで、試行が行われます関数 FnUpdateSalegtab09 を呼び出します。ただし、関数が存在しないか、その引数の型が予期したものと一致しないことを示すエラーが発生します。
エラー メッセージは、関数名または引数の型が間違っている可能性があることを示唆しています。考えられる原因を調べてみましょう。
FnUpdateSalegtab09 の関数シグネチャは、そのパラメーターのいくつかが smallint 型であることを指定しています。ただし、関数呼び出しでは、これらのパラメーターは数値リテラルとして渡され、最初は整数型であると想定されます。
引数の予期された型と実際の型の間の不一致により、エラーが発生する可能性があります。
この問題を解決するには、数値リテラルを正しい型に明示的にキャストする必要があります。 smallint を関数に渡す前に。これは、以下に示すように、各リテラルに型キャスト演算子 (::) を追加することで実現できます。
select FnUpdateSalegtab09( 4, 1, 0, 12, 1, '9'::varchar, '2014-07-15'::timestamp, 4048, '9'::varchar, 4048, 'MYCUSTOMER'::varchar, 12::money, 0, 0::money, 0.32, 185, 0, '2014-07-15 11:24:12 AM'::timestamp, 0, 0::money, 0, 0::money, 0::money, 0, 0::money, 0, 0::money, 0, 0::money, ''::varchar, 0::money, False, ''::varchar, '2014-07-15'::timestamp, ''::varchar, ''::varchar, False, ''::varchar, ''::varchar, 1, ''::varchar, 1, 0, 1, 0, 42 );
明示的な型キャストを追加することで、引数の型が関数の期待と一致することが保証されます。これで、「関数 ... が存在しません」エラーが発生せずに関数呼び出しが実行されるようになります。
以上がSQL 関数の呼び出しが「関数 ... が存在しません」というメッセージで失敗するのはなぜですか? どのように修正すればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。