【问题标题】:how to define multiple (WITH AS FUNCTIONS) in a single query?如何在单个查询中定义多个(WITH AS FUNCTIONS)?
【发布时间】:2019-08-05 16:25:45
【问题描述】:

试图在一个 with 子句下定义多个函数。我们通常为 CTE 做的。但是对于功能,同样不起作用。请提出解决方案。

With function dt ( b as number) 
return number is 
n number ; 
begin 
select  1 into n; 
return n ; 
end ; 
dt2 ( c as number) 
return number is 
n1 number ; 
begin 
select  1 into n; 
return n1; 
end ; 

select dt(1) , dt2(1) from dual 

仅使用 dt 时,我能够获得 o/p,但不能使用 dt2。

【问题讨论】:

  • SELECT 1 INTO n 在 12c 中合法吗?我原以为您至少必须使用SELECT 1 INTO n FROM DUAL。 ???此外,您的第二个函数没有定义变量n,尽管您正在选择它。 ???
  • 抱歉打错了。我确实从双重使用。谢谢。

标签: oracle oracle12c with-statement


【解决方案1】:

它正在使用以下示例:

with 
  function x(p_NUM in number) return number
  is
    n number;
  begin
    SELECT 1 INTO N FROM DUAL;
    --
    return N;
    --
  end ; 
  --      
  function Y(p_NUM in number) return number
  is 
    N1 NUMBER;
  begin
    SELECT 2 INTO N1 FROM DUAL;
    --
    return N1;
    --
  end ; 
--
select X(1), Y(1)
from dual;

干杯!!

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 1970-01-01
    • 2017-07-26
    • 2021-10-02
    相关资源
    最近更新 更多