KingbaseES V8R6数据库运维案例之---创建extension提示函数存在
案例说明:
在创建extension时提示“unction or procedure "get_raw_page" already exists”函数已存在。
适用版本:
KingbaseES V8R6
一、问题现象
如下图所示,创建扩展提示“get_raw_page" already exists”函数已存在,查询数据库无此函数。
二、问题分析
数据库GUC参数:
ora_forbid_func_polymorphism 是否是否禁用多态on表示开启禁用多态,同模式下不能创建同名的函数或存储过程。off(默认),则表示启用多态
默认配置:
prod=# show ora_forbid_func_polymorphism;
ora_forbid_func_polymorphism
------------------------------
off
(1 row)
问题复现:
如下所示,如果ora_forbid_func_polymorphism=on,禁用多态,将导致创建扩展失败。
prod=# set ora_forbid_func_polymorphism=on;
SET
prod=# show ora_forbid_func_polymorphism;
ora_forbid_func_polymorphism
------------------------------
on
(1 row)
prod=# create extension pageinspect;
ERROR: function or procedure "get_raw_page" already exists
如下所示,如果ora_forbid_func_polymorphism=off,启用多态,创建扩展成功,并创建两个不同态的同名函数“get_raw_page ”。
prod=# set ora_forbid_func_polymorphism=off;
SET
prod=# create extension pageinspect;
CREATE EXTENSION
prod=# select proname,prokind,proisstrict,provolatile from sys_proc
prod-# where proname like '%get_raw_page%';
proname | prokind | proisstrict | provolatile
--------------+---------+-------------+-------------
get_raw_page | f | t | v
get_raw_page | f | t | v
(2 rows)
三、问题解决
对于生产环境,没有特殊需求,尽量将ora_forbid_func_polymorphism=off,配置为默认值,支持函数多态。
分类:
KingbaseES
标签:
kingbaseES
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」
2023-03-06 kingbaseES V8R6备份恢复案例之--- sys_rman备份“DSO support..."故障
2023-03-06 KingbaseES V8R6备份恢复案例之---异机备份ssh认证失败