gpt4 book ai didi

oracle - 如何将 Oracle 过程的参数默认值设置为选择结果?

转载 作者:行者123 更新时间:2023-12-01 21:24:17 25 4
gpt4 key购买 nike

我有一个 oracle 过程,我想将默认参数设置为 select 语句的结果,如下所示。

procedure foo( startID number : = max(x.id) from xtable x )

但是上面的代码是非法语法。

最佳答案

您可以使用其他无效值来表达此含义,例如 NULL:

PROCEDURE foo (p_id NUMBER DEFAULT NULL) IS
l_startID NUMBER := p_id;
BEGIN
IF p_id IS NULL THEN
SELECT max(id) INTO l_startID FROM xtable;
END IF;
...
END;

如果你的函数/过程在一个包中,你也可以overload它:

PROCEDURE foo (p_id NUMBER)
[...]

PROCEDURE foo IS
l_startID NUMBER;
BEGIN
SELECT max(id) INTO l_startID FROM xtable;
foo(l_startID);
END;

关于oracle - 如何将 Oracle 过程的参数默认值设置为选择结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756777/

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