错误码:-5206
错误内容:没有找到运算符
sql或PL/SQL中存在未知运算符
Oracle可以通过**计算n的m次幂,迁移达梦后报错
declare
n number := 5;
m number := 2;
begin
dbms_output.enable();
dbms_output.put_line(n**m);
end;
/
执行失败(语句1)
-5206: 第6 行附近出现错误:
没有找到运算符
方法1:使用函数替换原有运算符
declare
n number := 5;
m number := 2;
begin
dbms_output.enable();
dbms_output.put_line(cast(power(n,m) as number));
end;
/
方法2.利用自定义函数创建自定义运算符
--创建自定义函数
CREATE OR REPLACE FUNCTION FUNC_POWER(
C1 IN NUMBER,
C2 IN NUMBER
) RETURN NUMBER
AS
BEGIN
RETURN CAST(POWER(C1,C2) AS NUMBER);
END;
/
--创建自定义运算符
CREATE OPERATOR ** (FUNCTION FUNC_POWER, LEFTARG NUMBER, RIGHTARG NUMBER);
--原代码即可正常运行
[执行语句1]:
declare
n number := 5;
m number := 2;
begin
dbms_output.enable();
dbms_output.put_line(n**m);
end;
执行成功, 执行耗时0毫秒. 执行号:1029
25
文章
阅读量
获赞