您的位置:首页 > 数据库 > Oracle

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

2014-10-30 11:31 639 查看
--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';
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐