Oracle 如何在一个查询中定义多个(带AS函数)?

Oracle 如何在一个查询中定义多个(带AS函数)?,oracle,oracle12c,with-statement,Oracle,Oracle12c,With Statement,尝试在单个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

尝试在单个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。

它使用以下示例:

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;

干杯

它正在使用以下示例:

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;

干杯

SELECT 1 INTO n
12c是否合法?我想你至少应该使用
从DUAL
中选择1到n???此外,第二个函数没有定义变量
n
,尽管您选择了它???对不起,那是个打字错误。我确实使用了双重密码。谢谢。在12c中选择1进入n是否合法?我想你至少应该使用
从DUAL
中选择1到n???此外,第二个函数没有定义变量
n
,尽管您选择了它???对不起,那是个打字错误。我确实使用了双重密码。谢谢