2009-09-09 19 views
0

純粋に一般的な型安全性の概念に基づいて、この回答は「いいえ」と思われますが、とにかく質問します。未指定の戻り値の型でMySQLでストアド関数を定義することはできますか?

MySQLでストアドファンクションを定義する場合、通常はCREATE構文の一部が関数の戻り値の型を定義します。

戻り値の型が結果に応じて2つの可能な型のいずれかであるが、呼び出し元には不明なものを定義することは可能ですか?具体的には、返される値に基づいて2つの異なる精度でDECIMAL型を指定することに興味があります。そのため、これらの値は明示的に使用されていない限りCASTです。

たとえば、CASECASTを使用して、ストアドプロシージャまたは正規ステートメントの精度を変更することができますが、そのコードをストアドファンクションに抽象化したいと思います。

答えて

1

私の答えは「いいえ!」ではなく「何故ですか?」です。 :-)

できない場合は、2つのストアドプロシージャを作成してください。最高の精度で結果を与えるものと、高精度の関数を呼び出す低精度のパラメータを受け取り、結果を低精度に戻すものです。

2つの異なるフットプリントを持つ2つの異なる機能ですが、基本的には同じです。

抽象化は、オブジェクト指向のアプローチを使用している場合にのみ便利です。しかし、データベースのストアドプロシージャはOOではなく、単純なメソッドです。

+0

なぜ、メタアンサーリング。私はこの情報を、私が提供した答えを改善するために必要としました。 :) –

関連する問題