mysql - 在一个函数中调用 MySQL 算术运算符?

标签 mysql sql

我一直在尝试在一个函数中创建和调用所有MySQL算术运算符(+, -,/, *),但我遇到了一个问题参数m1。我收到一条错误消息:

Syntax error: unexpected 'm1' (Identifier)?

我已经将其声明为数字,但它仍然向我显示相同的错误。有谁知道如何解决它并在 MySQL Workbench 5.7

上成功运行此函数

这是代码,错误在第5行:

CREATE FUNCTION `Calculator` 

(m1 numeric (10,4), m2 numeric (10,4), m3  numeric (10,4), s  varchar (20))

RETURNS INTEGER


BEGIN

m1:=&m1

m2:=&m2

s:=&s

if s = '+' then

m3:=m1+m2

dbms_output.put_line(m1||s||m2||'='||m3)

else if s = '-' then

m3:=m1-m2

dbms_output.put_line(m1||s||m2||'='||m3)

else if s = '*' then

m3:=m1*m2

dbms_output.put_line(m1||s||m2||'='||m3)

else if s = '/' then

m3:=m1/m2

dbms_output.put_line(m1||s||m2||'='||m3);

end if

  exception

  when zero_divide then

  dbms_output.put_line('cant divide by zero')

end

/



RETURN 1;
END

最佳答案

您有多种尝试在代码中使用 Oracle 数据库语法的情况。

Oracle 和 MySQL 是两种不同的产品,不能对两者使用相同的语法。

在 MySQL 中:

在继续之前,您应该学习 MySQL 语法。

关于mysql - 在一个函数中调用 MySQL 算术运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44980447/

相关文章:

sql - 如何获取雪花查询历史记录中每个查询使用的表列表

mysql - 我的 SQL 查询获取共同/ friend 关注者

sql - 从 select 语句推断的 Postgres 隐式类型

sql - 在没有子查询的 MySQL 中,优先于 GROUP BY 的 ORDER BY

php - 如何在 mysql 的 where 条件下使用 in_array() 函数?

mysql - 为什么 MySQL 在我安装的 XAMPP 上无法启动?

mysql - JSP 中用户的 session

用户错误 1045 的 mysql 访问被拒绝

mysql - 从主机访问 Docker MySQL 服务器,无需容器的 IP 地址

c# - 仅当使用 System.Data.OracleClient 时,函数才保持 INVALID,通过 SQL Developer 工作