gpt4 book ai didi

ORACLE PL/SQL : Functions and Optional Parameters, 如何?

转载 作者:行者123 更新时间:2023-12-04 13:17:47 26 4
gpt4 key购买 nike

我正在寻找创建一个函数的最佳方法,该函数可以不接受任何参数并返回所有结果,但也接受参数并返回这些结果。

我在工作中处理的标准是:

FUNCTION get_records (
i_code IN records.code%type := NULL,
i_type IN records.type%type := NULL
) RETURN results

问题是我想返回类型为 NULL 的记录,并使用:
WHERE type = nvl(i_type, type)

出于显而易见的原因,它只返回具有实际类型的记录而不是空记录。我只是想知道是否有一种标准方法可以在我们使用的所有功能中实现。巧合的是,如果我提供一个参数......我不想要该字段的 NULL 值。

最佳答案

解决这个问题的标准方法是重载函数,而不是使用默认值:

FUNCTION get_records (
i_code IN records.code%type,
i_type IN records.type%type
) RETURN results;

FUNCTION get_records (
i_code IN records.code%type
) RETURN results;

FUNCTION get_records RETURN results;

注意:如果您还需要一个版本 i_type就其本身而言,如果它具有与 i_code 相同的基础类型,您可能会遇到问题。 - 在这种情况下,您需要为函数使用不同的名称。

关于ORACLE PL/SQL : Functions and Optional Parameters, 如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971001/

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