ホームページ > データベース > mysql チュートリアル > SQL 関数の呼び出しが「関数 ... が存在しません」というメッセージで失敗するのはなぜですか? どのように修正すればよいですか?

SQL 関数の呼び出しが「関数 ... が存在しません」というメッセージで失敗するのはなぜですか? どのように修正すればよいですか?

Susan Sarandon
リリース: 2024-12-27 13:03:16
オリジナル
752 人が閲覧しました

Why Does My SQL Function Call Fail with

「エラー: 関数 ... が存在しません。ヒント: 指定された名前と引数の型に一致する関数はありません。」

提供されたコードで、試行が行われます関数 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート