如何将记录用作存储函数中的参数

时间:2012-03-22 09:32:00

标签: postgresql stored-functions

我想使用记录类型作为参数,但我得到的消息是函数不能有记录类型参数。我有一个Dao函数,它对Arraylist传递的参数执行各种操作,我需要在存储过程中实现它。所以任何帮助将不胜感激。谢谢! 正在寻找的函数类似于:

CREATE OR REPLACE FUNCTION est_fn_get_emp_report(rec record,...)

我是使用 postgresql 的新手,但之前使用过存储过的函数,但从不必使用记录类型参数。

1 个答案:

答案 0 :(得分:1)

简单的问题是你无法指定记录。您可以指定一些多态类型(ANYARRAY,ANYELEMENT)作为函数的输入,但它需要在计划时具有已知的结构,这可能导致多态类型的问题,即使在好日子也是输入参数。记录的问题在于PostgreSQL在传入时不一定知道内部结构是什么。ROW(1, 'test')在功能上下文中没用。

相反,您想要指定复杂类型。实际上,你可以依靠PostgreSQL来实现这一目标。这允许您在传入时指定特定类型的记录。