本文介绍在执行CREATE CAST语句转换数据类型时,如何处理报错must be owner of type xx or type xxx
。
问题现象
执行CREATE CAST语句转换数据类型时,提示ERROR: must be owner of type xxx or type xxx
例如执行以下命令:
CREATE cast(boolean AS smallint) WITH INOUT AS implicit;
解决办法
重要 使用此方法前需要确保实例版本满足以下条件:
- 实例大版本为PostgreSQL 10、11、12、13或14。
- 实例内核小版本为20210531及以上。查看和升级内核小版本,请参见升级内核小版本。
以上述示例SQL为例,需要通过以下步骤解决:
- 使用高权限账号连接数据库。如何获取高权限账号,请参见创建账号。
- 修改转换前数据类型Owner为当前登录账号。
ALTER type bool owner TO <your role>;
- 再次执行CREATE CAST语句,即可成功转换数据类型。
CREATE cast(boolean AS smallint) WITH INOUT AS implicit;