2009-09-09 51 views
0

我懷疑這個答案是否定的,純粹是基於一般類型安全的概念,但我仍然會問。是否可以使用未指定的返回類型在MySQL中定義一個存儲函數?

如果我在MySQL中定義了一個存儲函數,通常CREATE語法的一部分定義了函數的返回類型。

是否可以定義一個返回類型是兩種可能類型中的一種,具體取決於結果,但調用者不知道哪一種?具體而言,我有興趣根據返回的值指定具有兩種不同精度的DECIMAL類型,以便我不必在使用這些值時明確指定這些值。

我知道我可以明確地使用,例如,CASECAST來更改存儲過程或常規語句的精度,但我想將該代碼抽象爲存儲函數。

回答

1

我的回答是「爲什麼?」,而不是「否!」。 :-)

如果這是不可能的,創建兩個存儲過程!一個將給出最高精度的結果,另一個接受調用高精度函數的精度較低的參數,並將結果返回到較低的精度。

兩種不同的功能有兩個不同的腳印,但基本上他們只是做同樣的事情。

抽象僅在您使用面向對象的方法時纔有用。但是數據庫中的存儲過程不是面向對象的,只是簡單的方法。

+0

爲什麼元回答。我需要這些信息來改善我在其他地方提供的答案。 :) – 2009-09-09 13:16:11

相關問題