Function 将表中的数据保存到变量中并在函数中使用(创建数据集)

Function 将表中的数据保存到变量中并在函数中使用(创建数据集),function,postgresql,stored-procedures,plpgsql,Function,Postgresql,Stored Procedures,Plpgsql,基本上,我想创建一个类似于PHP的数据集,在这里我可以将select语句的返回存储在一个变量中,然后使用它进行逻辑决策 以下是我正在尝试的: DROP FUNCTION cc_get_balance(date); CREATE OR REPLACE FUNCTION cc_get_balance(theDate date) RETURNS TABLE(balance numeric(20,10), rate numeric(20,10), final_balance numeric(20,10

基本上,我想创建一个类似于PHP的数据集,在这里我可以将select语句的返回存储在一个变量中,然后使用它进行逻辑决策

以下是我正在尝试的:

DROP FUNCTION cc_get_balance(date);

CREATE OR REPLACE FUNCTION cc_get_balance(theDate date) RETURNS TABLE(balance numeric(20,10), rate numeric(20,10), final_balance numeric(20,10)) AS $$

DEClARE
currency1_to_EUR numeric(20,10);
currency2_to_EUR numeric(20,10); 
table_ret record;
BEGIN

currency1_to_EUR := (SELECT rate FROM cc_getbalancesfordatewitheurs(theDate) WHERE from_currency = 'currency1' AND to_currency = 'EUR');
currency2_to_EUR := (SELECT rate FROM cc_getbalancesfordatewitheurs(theDate) WHERE from_currency = 'currency2' AND to_currency = 'EUR');

SELECT * INTO table_ret FROM cc_getbalancesfordatewitheurs(theDate);


END;                                                  

$$ LANGUAGE 'plpgsql';  

SELECT * FROM cc_get_balance('2014-02-15'::date);
我不知道这是否正确。我希望能够使用table_ret作为数据集,如:

select * from table_ret ...  
因此,我不必对数据库进行大量查询。我已经寻找了这样做的例子,但没有找到任何像我需要或想要做的事情

该版本为9.3.4,cc_getbalancesfordatewitheurs()返回一个表,其中包含以下列:货币、兑换货币、汇率、余额和折算金额。大约有30排。我需要运行to_currency列,并根据该列中的货币列表运行一些其他转换。因此,我不想在数据库中查询30次转换。我需要的所有数据都收集在cc_getbalancesfordatewitheurs()返回的表中。 cc_get_balance()应该返回从另一个函数中找到的表中的所有行,以及将to_货币最终转换为EUR的列。通常,没有“表变量”。您可以使用光标或临时表。
更好的方法是使用a的隐式光标。
更好的是,如果可能的话,在一个基于集合的操作中完成所有操作。询问

相关示例:

关键问题:您所说的是一行/记录还是一组行?我们需要查看
cc_getbalancesfordatewitheurs()
返回的内容。还有你的博士后版本。此外,在您的代码中没有指示什么
cc\u get\u balance()
应该实际返回。这相当清楚了。然而,基本信息应该是一个问题。评论不是这样做的地方。一旦你用缺少的细节编辑了你的问题,我将添加代码。