zoukankan      html  css  js  c++  java
  • oracle_开发子程序和包

      包(package)用于组合逻辑相关的PL/sql类型的(例如:table 类型和record类型),pl/sql 项(列如:游标,和游标变量)和pl/sql子程序(例如:过程和函数)

    通过使用pl/sql包不仅可以简化应用设计,提高应用 的性能,还可以实现信息的隐藏,子程序重载等功能。

    下面就针对计算圆的面积来做个演示:

    1—创建包规范

    create or replace package dbutil_package is pi constant number(10,7):=3.1415926;--定义常量pi
    function gatarea(radius number) return number;--计算圆的面积
    procedure print_area;--输出圆的面积
    end dbutil_package;

    执行完上面的命令后创建一个包规范duitil_package,且定义了所有的公用的组件。但是这里只是定义了过程和函数的头部,并没有编写可执行的代码,所以公用的过程和函数

    只有在创建了包实体后才能调用。

    2—创建包实体

    create or replace  package body dbutil_package is area number(10);--定义局部变量
    function getarea(radius number) return number is 
    begin 
    area:=pi*radius*radius;
    return area;
    end;
    procedure print_area is 
    begin
    dbms_output.put_line('圆的面积是:'||area);
    end;
    end dbutil_package;

    is开始的部分定义为私有的组件,并实现包规范中所定义的公用过程和函数,此外包体名和包规范的名字必须相同,

    3—使用包中的组件

    declare
    area number10,7);--声明一个变量
    begin
    area:=dbutil_package.getarea(3);--给变量赋值
    dbms_output.put_line(dbutil_package.getarea(3));--输出变量的值
    end;

    *1.在同一个包内调用组件

    调用时可以直接调用,不需要添加包名作为前缀。

    *2.调用包的公用变量

    在其他应用中调用包的公用变量必须要在公用变量的名前添加包名作为前缀并且其数值在当前会话内一直生效。

    *3调用包的公用子程序

    当在其他的应用中调用包的公用过程时,必须在公用的过程名前添加包作为前缀。

    declare 
    area  number10,7);
    begin
    area:=dbutil_package.getarea(3);--必须要在公用的过程名前添加包做为前缀。
    dbms_output.put_line(area);
    end;
    --执行完了之后会输出
    28.2743334

    *子程序和包的管理

    在创建子程序之后,Oracle 会将子程序名及其源代码信息放在数据字典中。通过查询数据字典user_source,显示当前用户所用程序及源代码。

    删除:drop procedure proce_sum

     drop pachage body;

    drop package;

  • 相关阅读:
    Freedur为什么会免费?
    Cocos2d-x中使用音频CocosDenshion引擎介绍与音频文件的预处理
    AssetManager asset的使用
    Android AsyncHttpClient
    UI标签库专题十三:JEECG智能开发平台 ckfinder(ckfinder插件标签)
    UBUNTU 下如何升级 gcc, g++
    java 泛型深入之Set有用工具 各种集合泛型深入使用演示样例,匿名内部类、内部类应用于泛型探讨
    最新Connectify注冊码(序列号) Connectify3.7序列号 破解版
    简单单元測试思想
    Dijkstra算法
  • 原文地址:https://www.cnblogs.com/wjn563/p/4074690.html
Copyright © 2011-2022 走看看