Oracle 函数未返回变量值。需要返回存储在变量中的值

问题描述 投票:0回答:1

我有一个简单的要求,要求从函数返回存储在变量中的值。我有一个1000行的复杂代码。我只是为了便于理解而简化了这个函数

create or replace function traudit040_func_ss 
(p_Ambulance IN  varchar2
)
return clob sql_macro as
vc_desc varchar2(1000) := '' ;

begin
                    IF (p_Ambulance = 10) then                     
                             vc_desc := 'No';
                    END IF;               
                   

return  'select ''' || vc_desc || ''' v1 from dual';


end;

现在我正在使用以下语句执行该函数

select * from traudit040_func_ss(10)

请在这里帮助我。我得到的输出为 NULL,但是我期望的值是 “否” 我认为上面的 IF 条件不起作用或者我遗漏了一些东西。预先感谢您。

oracle plsql plsqldeveloper
1个回答
0
投票

不要从功能中选择。从双重中选择功能:

select traudit040_func_ss('10') from dual;

此外,如果您的输入是字符串,请使用字符串而不是数字来呈现。

© www.soinside.com 2019 - 2024. All rights reserved.