我是ColdFusion的新手,我在CFQuery中编写了一块Postgres代码:
<cffunction name="insertToReport" access="private" returntype="struct" output="false" >
<cfset var xyz = structNew() >
<cfset xyz.code = "">
<cfquery name="querysampleresult" datasource="abc">
DO
$BODY$
DECLARE resultValue int;
BEGIN
resultValue = 1;
SELECT resultValue INTO resultValue ;
END;
$BODY$
</cfquery>
<cfset xyz.code = querysampleresult.resultValue >
<cfreturn xyz >
</cffunction>
我的问题是我无法访问CFQuery标记之外的变量
resultValue
,即它引发了异常:Element RESULTVALUE is undefined in querysampleresult
这是在函数末尾的CFSet语句中发生的:
<cfset xyz.code = querysampleresult.resultValue >
我不知道如何在结构中设置变量
resultValue
,我势必将结构从此处返回到调用环境。在此,请帮助我,在此先感谢。
最佳答案
匿名代码块(DO
)始终返回void
。您需要使用一个函数来返回其他任何内容:
create function f()
returns integer as $body$
declare
resultValue integer;
begin
resultValue := 1;
return resultValue;
end;
$body$
language plpgsql
创建函数后,可以在查询中使用它:
select f() as resultValue;