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,配置为默认值,支持函数多态。

posted @   天涯客1224  阅读(30)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用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认证失败
点击右上角即可分享
微信分享提示