2017-10-18 55 views
0

复合类型数组是否是在plpgsql中模拟“函数作用域”表的正确方法?在plpgsql中选择一个复合类型数组

我想存储整个函数的访问查询结果,但我不想使用临时表,因为单个会话可能同时执行多个函数调用。

DECLARE 
projectDocuments document_tracking.docmaster[]; 

SELECT * INTO projectDocuments FROM document_tracking.docmaster WHERE jobnumber = jobnumberparam; 

产生格式错误的数组文字错误,我应该使用聚合函数,或:=?

+0

'ON COMMIT DELETE ROWS' is not a option?.. –

+0

您的意思是创建临时表并指定ON COMMIT DELETE ROWS。这是否意味着临时表被锁定在函数的事务中,并发执行的函数会在必要时自行锁定? –

+0

它没有锁定。它在事务内部填充,并在提交时为空。你想如何在同一个会话中实现并发?..在一个池中共享语句级别?..在非 - 它会工作。如果是 - 取决于你在哪里做 - 如果在功能上 - 可能会工作。我甚至好奇地尝试:) –

回答