CREATE TYPE status_record AS
(
id bigint,
status boolean
);
使用类型数组作为输入参数进行某些处理的过程:
CREATE OR REPLACE FUNCTION update_status(status_list status_record[])
RETURNS text AS
$BODY$
DECLARE
BEGIN
--does some processing
return 'SUCCESS';
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
最后我查询了这个程序:
select *
from update_status(cast(ARRAY[(385,false),(387,false)] as status_record[]));
在pgadmin中一切正常.后来当我尝试使用Hibernate本机SQL查询Ka Boom调用相同的!!!显示以下内容:
06003
最后一个问题:ARRAY [ – something]和{–something}都做同样的工作吗?
解决方法:
使用数组文字(数组的文本表示),因为数组构造函数ARRAY […]必须由Postgres进行评估:
SELECT update_status('{"(1,t)","(2,f)"}'::status_record[]);
也许没有明确的演员:
SELECT update_status('{"(1,t)","(2,f)"}');
SO之前也有过类似的案例:
> Pass array from node-postgres to plpgsql function
> How to pass custom type array to Postgres function
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。