CREATE OR REPLACE FUNCTION chkfunction(schemaname text, state text, wallmaterial text, roofmaterial text)
RETURNS text AS
$BODY$
DECLARE
tblinclusion text;
BEGIN
execute'if (SELECT exists( select schema_name FROM information_schema.schemata WHERE schema_name = '||$1 ||') )
then
tblinclusion:="yes";
return tblinclusion;
else
tblinclusion:="no";
return tblinclusion;'
Using schemaname;
END;
$BODY$
LANGUAGE plpgsql
但是它引发了错误:
syntax error at or near "if"
LINE 1: if (SELECT exists( select schema_name FROM information_schem...
答案 0 :(得分:0)
首先,既然您似乎是Stackoverflow的新手,那么这里有一些礼节和帖子提示:
由于你没有完成上述所有工作,我只能猜测,所以我根据你的代码做了一些假设。如果模式存在,您似乎想要返回文本“是”,如果模式不存在,则返回“否”。如果这不是您的愿望,请更新问题。如果正确,似乎以下应该适合您:
CREATE OR REPLACE FUNCTION chkfunction2(schemaname text)
RETURNS text AS
$BODY$
DECLARE
BEGIN
PERFORM schema_name FROM information_schema.schemata WHERE schema_name = $1;
IF FOUND THEN
RETURN 'yes';
ELSE
RETURN 'no';
END IF;
END;
$BODY$
LANGUAGE plpgsql
注意:我认为不需要额外的变量或声明,所以我把它们遗漏了。另请注意,我的解决方案是使用PostgreSQL 9.1进行开发和测试的
欢迎使用StackOverflow!