首页 » 项目 » 本地支持项目 » 任务/议题追踪 » Support » 编辑追踪项
点击项目报表查看是,显示错误:Error: Operator does not exist: "char" = integer
提交者: 商 云方 新增日期: 2017-06-24 14:17:55 原因:postgresql 从8.3升级到8.4之后,integer 到 text的默认转换被去掉,要求程序员在比较integer和Text的时候使用cast函数强制转换,但遗留版本程序这么改涉及到很多地方,比较费事; 简单的处理方法如下: CREATE OR REPLACE FUNCTION of_integer_ilike_text(prm_integer integer, prm_text text) RETURNS boolean AS $BODY$BEGIN RETURN prm_integer::text ~~* prm_text ; END;$BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100; ALTER FUNCTION of_integer_ilike_text(integer, text) OWNER TO useris; CREATE OPERATOR =( PROCEDURE = of_integer_ilike_text, LEFTARG = integer, RIGHTARG = text); 为新版本添加一个默认转换函数,可以解决该问题。