gpt4 book ai didi

oracle - 在 PLSQL 中使用嵌套函数的正确方法是什么?

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

我想知道在 PLSQL 中使用嵌套函数的正确方法。在下面的代码片段中,函数“to_number”工作正常,但我的两个嵌套函数不能以相同的方式使用。

Declare
Tettt Number;
Function lolazo(pigt Number, p_Fecha_Fact Date)
Return Number Is
resultado number;
Begin
Select Vp.Valor
into resultado
from valor_precio vp
Where Vp.Id_Tipo_Cargo = 103
And Vp.Id_Grupo_Precio = pigt
and vp.f_inicio_precio =
(select max(vp2.f_inicio_precio)
From Valor_Precio Vp2
Where Vp2.Id_Grupo_Precio = pigt
And Vp2.F_Inicio_Precio < p_fecha_fact
And Vp2.Id_Tipo_Cargo = 103 );
Return Resultado;
End Lolazo;
Function Multi(Uno Number, Dos Number) Return Number Is
Begin
return uno*dos;
End Multi;
Begin
Select to_number('123')
Into Tettt
From Dual;

-- Doesn't work!
-- Select lolazo(1544, to_date('01/01/2011','dd/mm/yyyy'))
-- Into Tettt
-- From Dual;

-- Doesn't work!
-- select Multi(2,3) into Tettt from dual;

Dbms_Output.Put_Line(lolazo(1544, to_date('01/01/2011','dd/mm/yyyy')));
Dbms_Output.Put_Line(Multi(2,3));
dbms_output.put_line(Tettt);
end;

最佳答案

您的函数不能在 SQL 中使用,所以不要:select into some_variable from dual

尝试使用赋值:

Tettt := Multi(2,3);

此外,发布脚本中的错误(而不是说不起作用)。我们更容易看到实际问题。

如果您真的想从 SQL 使用这些函数,您必须将它们暴露给 SQL 引擎(在您的匿名 block 所在的 PL/SQL 世界之外)。这通常涉及创建单独的存储过程或在某些包规范中定义它们。

希望对您有所帮助。

关于oracle - 在 PLSQL 中使用嵌套函数的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045444/

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