2009-09-09 100 views
0

我怀疑这个答案是否定的,纯粹是基于一般类型安全的概念,但我仍然会问。是否可以使用未指定的返回类型在MySQL中定义一个存储函数?

如果我在MySQL中定义了一个存储函数,通常CREATE语法的一部分定义了函数的返回类型。

是否可以定义一个返回类型是两种可能类型中的一种,具体取决于结果,但调用者不知道哪一种?具体而言,我有兴趣根据返回的值指定具有两种不同精度的DECIMAL类型,以便我不必在使用这些值时明确指定这些值。

我知道我可以明确地使用,例如,CASECAST来更改存储过程或常规语句的精度,但我想将该代码抽象为存储函数。

回答

1

我的回答是“为什么?”,而不是“否!”。 :-)

如果这是不可能的,创建两个存储过程!一个将给出最高精度的结果,另一个接受调用高精度函数的精度较低的参数,并将结果返回到较低的精度。

两种不同的功能有两个不同的脚印,但基本上他们只是做同样的事情。

抽象仅在您使用面向对象的方法时才有用。但是数据库中的存储过程不是面向对象的,只是简单的方法。

+0

为什么元回答。我需要这些信息来改善我在其他地方提供的答案。 :) – 2009-09-09 13:16:11

相关问题