sql – Postgres动态查询功能
发布时间:2020-05-29 16:30:12 所属栏目:MsSql 来源:互联网
导读:我需要创建一个函数来运行一个查询,并返回结果,并将表名称和列名称赋予函数.我目前有这个: CREATE OR REPLACE FUNCTION qa_scf(tname character varying, cname character varying)RETURNS SETOF INT AS$BODY$BEGINRETURN QUERY SELECT * FROM tname WHER
|
我需要创建一个函数来运行一个查询,并返回结果,并将表名称和列名称赋予函数.我目前有这个: CREATE OR REPLACE FUNCTION qa_scf(tname character varying,cname character varying) RETURNS SETOF INT AS $BODY$ BEGIN RETURN QUERY SELECT * FROM tname WHERE cname !='AK' AND cname!='CK'; END; $BODY$ LANGUAGE plpgsql VOLATILE COST 100 ROWS 1000; 这给我的错误“关系”tname“不存在”运行时.我是新的功能创建Postgres,所以任何帮助是赞赏.我觉得return int是错误的,但是我不知道还有什么要让返回的行返回所有的列.谢谢! 解决方法您不能使用变量代替这样的标识符.您需要使用动态查询.它看起来像这样:EXECUTE 'SELECT * FROM ' || quote_ident(tname)
|| ' WHERE ' || quote_ident(cname) || ' NOT IN (''AK'',''CK'');'
INTO result_var;
如果您使用PostgreSQL 9.1或更高版本,您可以使用the format() function,使构建此字符串更容易. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
