oracle 学习(三)pl/sql语言函数

  • 系统内置函数
    1. 数学运算函数
    2. 字符串函数
    3. 统计函数
    4. 日期函数
  • 用户定义函数:存储在数据库中的代码块,可以把值返回到调用程序。调用时如同系统函数一样
    • 参数模式
  1. IN模式:表示该参数时输入给函数的参数
  2. OUT模式:表示该参数在函数中被赋值,可以传给函数调用程序
  3. IN OUT模式:表示该参数既可以传值也可以被赋值
创建函数
  1.  1 CREATE[OR REPLACE]FOUNCTION<函数名>
     2 (
     3    <参数名1>,<参数类型><数据类型>,
     4    <参数名2>,<参数类型><数据类型>,
     5    <参数名3>,<参数类型><数据类型>,
     6     ...
     7 )
     8   RETURN<返回值类型>    /*定义返回值类型*/
     9   {IS|AS}
    10    [声明变量]
    11    BEGIN
    12             <函数体>
    13             [RETURN(<返回表达式>);]
    14    END[<函数名>];

     

     1 CREATE OR REPLACE FUNCTION 函数名称
     2 (
     3     in_pmt IN char,
     4     out_pmt OUT char,
     5     in_out_pmt IN OUT char
     6 )
     7   RETURN char
     8   AS
     9   return_char char;
    10   BEGIN
    11           <函数语句序列>
    12            RETURN(return_char);
    13   END[函数名称]
    View Code

     

     1 CREATE OR REPLACE FUNCTION average(cnum IN char)
     2    RETURN number
     3    AS
     4    avger number;
     5    BEGIN 
     6           SELECT AVG(成绩)INTO avger
     7                 FROM CJB
     8                  WHERE 课程号=cnum
     9                   GROUP BY 课程号;
    10            RETURN(avger);
    11      END;
    View Code

     

  2. 语法要求
    1 函数语句序列中可能出现的情况
    2 IN模式:传递参数 对应变量为右值
    3 OUT模式:在函数中被赋值 对应变量为左值
    View Code

     

  3. 调用函数
     1 CREATE OR REPLACE FUNCTION count_num(in_sex IN)
     2      RETURN number
     3  AS
     4       out_num number;
     5  BEGIN
     6       IF in_sex=''THEN
     7            SELECT COUNT(性别)INTO out_num;
     8                 FROM XSB WHERE 性别=‘男';
     9       ELSE
    10             SELECT COUNT(性别)INTO out_num;
    11                 FROM XSB WHERE 性别=‘女';
    12       END IF
    13        RETURN(out_num);
    14 END count_num;
    View Code

     

     1 无论是在命令行还是在程序语句中,都可以通过名称直接在表达式中调用函数
     2 格式:
     3 <变量名>:=<函数名>[(<实参1>,<实参2>,..)]
     4 
     5 DECLARE
     6          girl_num number;
     7 BEGIN
     8          girl_num:=count_num('');
     9          DBMS_OUTPUT.PUT_LINE(TO_CHAR(girl_num));
    10 END;
    View Code

     

  4. 删除函数
    1 DROP FUNCTION [<用户方案名>.]<函数名>
    2 eg:
    3 DROP FUNCTION count_num;

     

转载于:https://www.cnblogs.com/yuelien/p/6628090.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值