由于使用FME从FileGDB迁移到PostGIS,我们在PostGIS数据库中有几个表,其中有很多空列(由于FME中的PostGIS编写器)。
我希望有一个函数来检测(以及之后删除)每个模式或数据库的这些空列。这也是未来可能有用的东西。 我开始使用PL / pgSQL函数来检测给定列是否为空。此后,我可以创建一个脚本来删除我的第一个脚本返回的架构中的每一列' TRUE'。
现在我被困在第一个,这是我到目前为止所得到的:
CREATE OR REPLACE FUNCTION admin.check_empty_column(
inputschemaname character varying,
inputtablename character varying,
inputfieldname character varying)
RETURNS boolean
LANGUAGE 'plpgsql'
COST 100
VOLATILE
AS $BODY$
BEGIN
IF not exists (select inputfieldname from inputschemaname.inputtablename where inputfieldname is not null)
THEN RETURN true;
else
return false;
END IF;
END;
$BODY$;
ALTER FUNCTION admin.check_empty_column(character varying, character varying, character varying)
OWNER TO postgres;
如果我像这样运行这样的脚本:
select admin.check_empty_column('ref','be_gem','numac')
我收到此错误:
"ERROR: relation "inputschemaname.inputtablename" does not exist LINE 1: SELECT not exists (select inputfieldname from inputschemanam..."
任何想法如何解决它?