此函数基于Oracle PL / SQL函数:
create or replace FUNCTION SP_ComputeEntity (P_ENTITY NUMERIC, P_CAMPAIGN NUMERIC, P_COMPLETE_IF NUMERIC, P_COMPUTE_MODE NUMERIC ) RETURNS VOID AS $$
DECLARE
[..]
-- This is the list of the entity's subordinates
[..]
-- This is the list of the entity's questionnaires
[..]
BEGIN
-- If the entity must not be computed for this campaign stop
[..]
-- Check if already computed .
[..]
-- If not already computed compute it now .
IF V_EXISTS = 0 THEN
-- Loop on subordinates to check if already computed
OPEN ENTITY_COLUMNS;
LOOP
FETCH ENTITY_COLUMNS INTO V_COLUMN_ID;
EXIT WHEN ENTITY_COLUMNS%NOTFOUND;
SP_ComputeEntity(V_COLUMN_ID, P_CAMPAIGN, P_COMPLETE_IF, P_COMPUTE_MODE);
END LOOP;
CLOSE ENTITY_COLUMNS;
[..]
END;
$$
LANGUAGE plpgsql;
我的问题是pgAdmin III在“SP_ComputeEntity”SQL状态或附近给出了ERROR:语法错误:42601字符:1773我不知道为什么 . 可以吗?有人可以在函数中调用postgresql中的相同函数吗?
3 回答
如果您不需要查询结果,可以使用Perform
执行SP_ComputeEntity过程就好
您也可以像使用变量中的select和retrive结果一样使用您的函数 .
仅举例如: