zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Java-->实现断点续传(下载)
    Java-->分割文件
    Java-->IO流模拟实现用户登录以及登录信息
    Java-->PrintStream
    Java-->一个只能运行十次的程序
    MySQL之数据类型
    【linux相识相知】网络属性配置
    MySQL之基本语句
    【linux相识相知】sed命令
    【Linux相识相知】yum的配置使用和程序包的编译安装
  • 原文地址:https://www.cnblogs.com/xinxin1994/p/4996130.html
Copyright © 2011-2022 走看看