代码之家  ›  专栏  ›  技术社区  ›  Adam Bellaire

是否可以在MySQL中定义具有未指定返回类型的存储函数?

  •  0
  • Adam Bellaire  · 技术社区  · 16 年前

    我怀疑答案是“不”,纯粹基于类型安全的概念,但无论如何我都会问。

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

    是否可以定义一个返回类型是两个可能类型中的一个,这取决于结果,但调用方未知?具体来说,我有兴趣说明 DECIMAL 基于返回的值具有两个不同精度的类型,因此我不必 CAST 这些值在使用它们的任何地方都是明确的。

    我知道我可以明确地使用,例如, CASE 铸件 更改存储过程或正则语句中的精度,但我想将代码抽象为存储函数。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Wim ten Brink    16 年前

    我的答案是“为什么?”不是“不!”.:-)

    如果不可能,请创建两个存储过程!一种是给出精度最高的结果,另一种是接受精度较低的参数,调用高精度函数,将结果强制转换回精度较低的结果。

    两个不同的函数有两个不同的脚印,但基本上它们的作用是相同的。

    抽象只有在使用面向对象方法时才有用。但是数据库中的存储过程不是OO,而是普通的方法。