gpt4 book ai didi

oracle - pl/sql 中的重载问题

转载 作者:行者123 更新时间:2023-12-02 02:48:30 25 4
gpt4 key购买 nike

伙计们,我正在尝试重载 Oracle 11gR2 中包中的函数。函数是这样的。

Function is_h2h(p_param in number) return boolean
is
begin
--some code here
return true;
end;


Function is_h2h(p_param in number) return number
is
begin
--some code here
return 1;
end;

所以问题是当我在另一个过程中编写 if 语句时

if is_h2h(some_param) then --code goes 
end if;

编译器返回PLS-00307:太多“IS_H2H”声明与此调用匹配
那么如何实现这种重载呢?

最佳答案

您需要使签名不同(忽略返回类型),否则编译器不会为您选择。

我的第一选择是给函数起不同的名称,例如:

function is_h2h_b(p_param in number) return boolean...

function is_h2h_n(p_param in number) return number...

如果您真的非常想使用相同的名称,则可以使用不同的参数名称 - 但这样您就只能使用命名参数(请注意,无论如何,这是一个很好的做法):

function is_h2h(p_param_b in number) return boolean...

function is_h2h(p_param_n in number) return number...

if is_h2h(p_param_b => some_param) then...

关于oracle - pl/sql 中的重载问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32882234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com