zoukankan      html  css  js  c++  java
  • plsql 函数的定义 包规范和包主体。

    /*
    一.函数?
       1.函数定义  
       函数的内容 根据实际需要来定义
       2.使用的方式
    */
    
    -- 定义函数    根据部门编号查询出部门的总人数
    create or replace function fn(
      deno dept.deptno%type  
      )return number
    as
       v_count number;
    begin
      select count(*) into v_count from emp where deptno=deno;
      return v_count;
      dbms_output.put_line(v_count);
    end;
    
    -- 使用方式
    declare
     v_count number(2);
    begin
      v_count:=fn(10);
      dbms_output.put_line(v_count);
    end;
    
    -- 使用方式
    select distinct deptno,ename,fn(deptno)人数 from emp;
    
    select  deptno,ename  from emp;
    
    select distinct deptno  from emp;
    
    /*
    二、包?
    1.创建包规范:变量  常量  过程  函数的声明; java(接口)
    2.创建包主体 ,过程  
    
    -- 包中定义函数
    求三角形到的面积  1.需要一个函数 计算三角形面积  2
                      2. 需要一个储存过程来 打印函数。
    */
    --包  变量,常量, 过程, 函数的声明 :
    create or replace package bao1 
    as
      v_area number(5,2);--包中定义的变量是全局变量。
      function get_area(n1 number,n2 number) return number;
      
      procedure print_area;
    end;
    
    --包的过程。
    create or replace package body bao1
    as  --包过程中定义的变量是局部的。
     function get_area(n1 number,n2 number) return number
     is
     begin
        v_area:=n1*n2/2;
        return v_area;
     end;
    
     procedure print_area
     as
     begin
       dbms_output.put_line('三角形的面积:'||v_area);
     end;
    end;
    
    -- 调用
    declare
      v_area number(5,2);
    begin
      v_area:=bao1.get_area(10,10);
      bao1.print_area;
      
    end;
  • 相关阅读:
    Linux
    memory库函数的实现
    剑指Offer面试题1
    Linux
    Linux-配置vim开发环境
    Linux-Find命令
    busybox,alphine,ubuntu,centos/fedore操作系统
    端口映射与容器互联
    docker 数据管理数据卷
    Celery
  • 原文地址:https://www.cnblogs.com/ZXF6/p/11228639.html
Copyright © 2011-2022 走看看