• 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 过程已成功完成。  
    • --带有IN参数的函数  
    • create or replace function get_empname(v_id in number) return varchar2 as  
    •   v_name varchar2(50);  
    • begin  
    •   select name into v_name from employee where id = v_id;  
    •    return v_name;  
    • exception  
    •   when no_data_found then  
    •     raise_application_error(-20001, '你输入的ID无效!');  
    • 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;

    http://www.cnblogs.com/1848/articles/1828927.html

  • 相关阅读:
    立体图
    旅行家的预算
    洛谷P多米诺骨牌
    洛谷P2331最大子矩阵
    理想的正方形
    2015 ACM/ICPC Asia Regional Hefei Online Find a path
    Atcoder abc 138 F
    Atcoder abc 138 E String of Impurity
    zlb的8.19考试
    Atcoder abc 138
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/4996130.html
Copyright © 2020-2023  润新知