2014-02-25 57 views
0

我对plpgsql有synatx问题。我想要做的就是用我的论点作为if语句的条件。我想将过程合并为一个过程。plpgsql在if语句中传递参数

CREATE OR REPLACE FUNCTION fn_name(arg1 int, arg2 date) 
returns text as 

$body$ 

DECLARE 

arg1 integer; 
arg2 date; 

Begin 
--where I am having the issue 

IF EXISTS (%,'%', arg1, arg2) 
    THEN 
    INSERT INTO some_table.table 
END IF; 

RETURN 'complete'; 
END; 
$body$ 
LANGUAGE plpgsql VOLATILE 

当我知道我有一个问题

IF EXISTS (%,'%', arg1, arg2) 
    THEN 

是否有这样做的更清洁的方式,或者说,得到这个正常工作?

+0

你得到什么错误? –

+0

错误:“%”处或附近的语法错误 –

+0

您在代码中缺少BEGIN –

回答

0

也许你要检查这些参数,如果他们是通过null

IF arg1 is not null and arg2 is not null THEN 
    --INSERT instruction 
END IF; 
+0

这绝对会诀窍。我仍然用本土语言表达自己的看法。谢谢! –