--Oracle10g 开发函数
--1、建立不带参数的函数
--在sql中利用函数进行查询
--2、建立带有输入参数的函数
--使用函数
--3、建立带有输出的函数
--使用函数(因为该函数带有out参数,不能再sql中直接调用,我们选择在command窗口执行函数)
--结果显示
--4、建立同时带有in和out参数的函数
--使用函数(因为该函数带有out参数,不能再sql中直接调用,我们选择在command窗口执行函数)
--结果显示
10
--5、删除函数
--6、查看函数源代码
--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';