如下所示,我有两个参数。我希望它们都是整数。但是,当我用非整数测试过程时,它仍然编译!为什么呢?
create procedure int_arith( p_1 int, p_2 int)
begin
select coalesce(p_1 + p_2, 'Null entry') addition;
end;
#
call test.a03_int_arith(10,3.3)\G
结果是:
addition: 13
答案 0 :(得分:1)
在某些语言中有效的是将double提升为int(请参阅类型转换)。 发生的事情是解释器(编译器无论如何)在这个3.3中看到double,并将其截断为整数(隐式地将double转换为int)。