Oracle 10g创建函数——带输入、输出参数

--Oracle10g 开发函数
--1、建立不带参数的函数

create or replace function get_user
return varchar2
is
v_user varchar2(100);
begin
select username into v_user from user_users;
return v_user;
end;


--在sql中利用函数进行查询

select get_user from dual;



--2、建立带有输入参数的函数

create or replace function get_name(id in communitytype.community_type_id%type)
return varchar2
as
v_name communitytype.name%type;
begin
select name into v_name from communitytype com
where com.community_type_id = id;
return v_name;
end;


--使用函数

select get_name('ebook') from dual;



--3、建立带有输出的函数

create or replace function get_name(id in communitytype.community_type_id%type,name out communitytype.name%type)
return varchar2
as
v_eng_name communitytype.english_name%type;
begin
select com.name,com.english_name into name,v_eng_name from communitytype com
where com.community_type_id = id;
return v_eng_name;
end;


--使用函数(因为该函数带有out参数,不能再sql中直接调用,我们选择在command窗口执行函数)

SQL> var name varchar2(50)
SQL> var eng_name varchar2(50)
SQL> exec :eng_name:=get_name('ebook',:name);


--结果显示

  • PL/SQL procedure successfully completed
    eng_name
    ---------
    电子图书修改
    name
    ---------
    电子图书



--4、建立同时带有in和out参数的函数

create or replace function result
(num1 number,num2 in out number)
return number
as
v_result number(6);
v_remainder number;
begin
v_result:=num1/num2;
v_remainder:=mod(num1,num2);
num2:=v_remainder;
return v_result;
end;

--使用函数(因为该函数带有out参数,不能再sql中直接调用,我们选择在command窗口执行函数)

SQL> var result1 number
SQL> var result2 number
SQL> exec :result2:=30


--结果显示

  • PL/SQL procedure successfully completed
    result2
    ---------
    30

    SQL> exec :result1:=result(100,:result2)

    PL/SQL procedure successfully completed
    result1
    ---------
    3
    result2
    ---------

10
--5、删除函数

drop function result;


--6、查看函数源代码

select text from user_source where name = 'RESUL';
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值