Oracle自定义函数

  1. --没有参数的函数   
  2. create or replace function get_user return varchar2 is  
  3.   v_user varchar2(50);   
  4. begin  
  5.   select username into v_user from user_users;   
  6.   return v_user;   
  7. end get_user;   
  8.   
  9. --测试   
  10. 方法一   
  11. select get_user from dual;   
  12.   
  13. 方法二   
  14. SQL> var v_name varchar2(50)   
  15. SQL> exec :v_name:=get_user;   
  16.   
  17. PL/SQL 过程已成功完成。   
  18.   
  19. SQL> print v_name   
  20.   
  21. V_NAME   
  22. ------------------------------   
  23. TEST   
  24.   
  25. 方法三   
  26. SQL> exec dbms_output.put_line('当前数据库用户是:'||get_user);   
  27. 当前数据库用户是:TEST   
  28.   
  29. PL/SQL 过程已成功完成。  
Sql代码 复制代码
  1. --带有IN参数的函数   
  2. create or replace function get_empname(v_id in number) return varchar2 as  
  3.   v_name varchar2(50);   
  4. begin  
  5.   select name into v_name from employee where id = v_id;   
  6.    return v_name;   
  7. exception   
  8.   when no_data_found then  
  9.     raise_application_error(-20001, '你输入的ID无效!');   
  10. end get_empname;  

 

附:

函数调用限制
1、SQL语句中只能调用存储函数(服务器端),而不能调用客户端的函数
2、SQL只能调用带有输入参数,不能带有输出,输入输出函数
3、SQL不能使用PL/SQL的特有数据类型(boolean,table,record等)
4、SQL语句中调用的函数不能包含INSERT,UPDATE和DELETE语句

 

查看函数院源代码
oracle会将函数名及其源代码信息存放到数据字典中user_source
select text from user_source where name='GET_EMPNAME';


删除函数
drop function get_empname

posted on 2009-02-26 16:57 丁克设计 阅读(822) 评论(0)  编辑  收藏 所属分类: Oracle 技术文档


只有注册用户登录后才能发表评论。


网站导航:
 
<2024年12月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

导航

留言簿(6)

随笔档案

文章分类

文章档案

搜索

最新评论

阅读排行榜