写了个了简单的小例子,由于你没有说明当入参不为0时,返回什么值,所以默认返回入参了。代码如下:
创新互联长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为平远企业提供专业的成都网站建设、成都做网站,平远网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。
CREATE OR REPLACE FUNCTION Fun_Test(p IN NUMBER) RETURN VARCHAR2 IS
v_Result VARCHAR2(20); --定义返回值变量
BEGIN
IF p = 0 THEN
v_Result := NULL; --赋空值
ELSE
v_Result := To_Char(p); --返回p的值
END IF;
RETURN v_Result; --返回结果
END;
有问题发追问。
希望能解决您的问题。
create or replace function test(p1 in number, p2 in varchar2)
return varchar2 is
v_out varchar2(200);
begin
select flag_name
into v_out
from PU_META_PLAT.MD_META_DIM_CODE
where dim_table_id = p1
and flag_code in
(SELECT trim(substr(',' || p2 || ',',
instr(',' || p2 || ',', ',', 1, LEVEL) + 1,
instr(',' || p2 || ',', ',', 1, LEVEL + 1) -
instr(',' || p2 || ',', ',', 1, LEVEL) - 1))
FROM dual
CONNECT BY LEVEL =
(length(',' || p2 || ',') -
length(replace(',' || p2 || ',', ',', ''))) / 1 - 1));
return v_out;
exception
when others then
return null;
end;
create or replace function my_fun return number is
i number := 1;
total number := 1;
begin
while i=20 loop
total := total*i;
i := i+1;
end loop;
return total;
end my_fun;
create or replace
FUNCTION "函数名"
(
A in number,
B in number,
name in VARCHAR2
)
BEGIN
insert into 表名 values(A+B,name);
END 函数名;
//花括号里边就是需要传的参数,name如果是固定的可以直接写死,就不用传参了