执行存储过程报4016错误

企业版2.2.76不支持EXISTS()吗 为什么在存储过程里使用这个函数被报4016错误。
– 删除存储过程(可选)
DROP PROCEDURE IF EXISTS DropColumnIfExists;

DELIMITER $$

CREATE PROCEDURE DropColumnIfExists()
BEGIN
– 检查字段是否存在
IF EXISTS (
SELECT 1
) THEN
– 如果字段存在,则删除字段
SELECT 1;
END IF;
END$$

DELIMITER ;

– 调用存储过程
CALL DropColumnIfExists();

– 删除存储过程(可选)
DROP PROCEDURE IF EXISTS DropColumnIfExists;

4 个赞

@论坛小助手

2 个赞

您好,您提的这个技术问题可能牵涉到 OceanBase 企业版范围内的功能细节;针对此类问题,建议你通过以下方式寻求帮助:

  1. 如你所在的企业客户已签署 OceanBase 企业版销售合同,请你联系客户经理;

  2. 如你所在的企业客户尚未签署 OceanBase 企业版销售合同,你可通过OceanBase官网商务咨询页面留下你的联系方式,OceanBase企业版的业务顾问会在一个工作日内与你联系。

另外,我们欢迎你使用社区版,并在论坛/社群中分享你对社区版本的想法、经验和问题,与其他社区成员共同交流。

3 个赞

这个版本比较老了,另外最好发下4016错误的详细信息。

3 个赞

打卡打卡

1 个赞

2.x版本,少见了

1 个赞

学习下

1 个赞

学习中

1 个赞

这个问题让我想起了IF相关的优化,特别是在DropColumnIfExists方面,采用PROCEDURE策略很有效。

1 个赞

2.x版本啊。。。。

:face_with_hand_over_mouth: :face_with_hand_over_mouth: :face_with_hand_over_mouth:

学习