• 扩展数据库的功能
  • 为 PL/SQL 提供对 SQL 功能的访问
  • 用户 SYS 拥有所有程序包
  • 是公有同义词
  • 可以由任何用户访问

一些内置程序包

程序包名称

说明

STANDARD和DBMS_STANDARD

定义和扩展PL/SQL语言环境

DBMS_LOB

提供对 LOB数据类型进行操作的功能

DBMS_OUTPUT

处理PL/SQL块和子程序输出调试信息

DBMS_RANDOM

提供随机数生成器

DBMS_SQL

允许用户使用动态 SQL

DBMS_XMLDOM

用DOM模型读写XML类型的数据

DBMS_XMLPARSER

XML解析,处理XML文档内容和结构

DBMS_XMLQUERY

提供将数据转换为 XML 类型的功能

DBMS_XSLPROCESSOR

提供XSLT功能,转换XML文档

UTL_FILE

用 PL/SQL 程序来读写操作系统文本文件

DBMS_OUTPUT包显示 PL/SQL 块和子程序的调试信息。

  1. SET SERVEROUTPUT ON
  2. BEGIN
  3. DBMS_OUTPUT.PUT_LINE('打印三角形');
  4. FOR i IN 1..9 LOOP
  5. FOR j IN 1..i LOOP
  6. DBMS_OUTPUT.PUT('*');
  7. END LOOP for_j;
  8. DBMS_OUTPUT.NEW_LINE;
  9. END LOOP for_i;
  10. END;
DBMS_LOB 包提供用于处理大型对象的过程和函数
DBMS_XMLQUERY 包用于将查询结果转换为 XML 格式
  1. DECLARE
  2. result CLOB;
  3. xmlstr VARCHAR2(32767);
  4. line VARCHAR2(2000);
  5. line_no INTEGER := 1;
  6. BEGIN
  7. result := DBMS_XMLQuery.getXml('SELECT empno, ename
  8. FROM employee');
  9. xmlstr := DBMS_LOB.SUBSTR(result,32767);
  10. LOOP
  11. EXIT WHEN xmlstr IS NULL;
  12. line := SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10))-1);
  13. DBMS_OUTPUT.PUT_LINE(line_no || ':' || line);
  14. xmlstr := SUBSTR(xmlstr,INSTR(xmlstr,CHR(10))+1);
  15. line_no := line_no + 1;
  16. END LOOP;
  17. END;

DBMS_RANDOM 包可用来生成8位的随机正负整数

  1. SET SERVEROUTPUT ON
  2.  
  3. DECLARE
  4. l_num NUMBER;
  5. counter NUMBER;
  6. BEGIN
  7. counter:=1;
  8. WHILE counter <= 10
  9. LOOP
  10. l_num := DBMS_RANDOM.RANDOM;
  11. DBMS_OUTPUT.PUT_LINE(l_num);
  12. counter:=counter+1;
  13. END LOOP;
  14. END;
UTL_FILE 包用于读写操作系统文本文件,操作文件的一般过程是打开、读或写、关闭
  1. CREATE DIRECTORY TEST_DIR AS 'C:\DEVELOP';
UTL_FILE 包指定文件路径依赖于 DIRECTORY 对象
  1. GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT;
  1. SET SERVEROUTPUT ON
  2.  
  3. DECLARE
  4. input_file UTL_FILE.FILE_TYPE;
  5. input_buffer VARCHAR2(4000);
  6. BEGIN
  7. input_file := UTL_FILE.FOPEN('TEST_DIR', 'employees.xml', 'r');
  8. LOOP
  9. UTL_FILE.GET_LINE(input_file,input_buffer);
  10. DBMS_OUTPUT.PUT_LINE(input_buffer);
  11. END LOOP;
  12. UTL_FILE.FCLOSE(input_file);
  13. EXCEPTION
  14. WHEN NO_DATA_FOUND THEN
  15. DBMS_OUTPUT.PUT_LINE('------------------');
  16. END;

Oracle学习笔记十四 内置程序包的更多相关文章

  1. oracle学习笔记(二十一) 程序包

    程序包 之前我们调用的dbms_output.put_line(''),dbms_output就是一个程序包 程序包创建语法 1. 声明程序包 --声明程序包中的过程,函数,自定义的类型 --程序包里 ...

  2. python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例

    python3.4学习笔记(十四) 网络爬虫实例代码,抓取新浪爱彩双色球开奖数据实例 新浪爱彩双色球开奖数据URL:http://zst.aicai.com/ssq/openInfo/ 最终输出结果格 ...

  3. Oracle学习笔记十二 子程序(存储过程、自定函数)和程序包

    子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中.   子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 ...

  4. (C/C++学习笔记) 十四. 动态分配

    十四. 动态分配 ● C语言实现动态数组 C语言实现动态数组,克服静态数组大小固定的缺陷 C语言中,数组长度必须在创建数组时指定,并且只能是一个常数,不能是变量.一旦定义了一个数组,系统将为它分配一个 ...

  5. hive学习笔记之七:内置函数

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  6. MySQL学习笔记_7_MySQL常用内置函数

    MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. ...

  7. Python学习笔记——常用的内置函数

    一.yield def EricReadlines(): seek = 0 while True: with open('D:/temp.txt','r') as f: f.seek(seek) da ...

  8. Oracle学习笔记十 使用PL/SQL

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用 ...

  9. 【转】angular学习笔记(十四)-$watch(1)

    本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: ...

随机推荐

  1. C#中,switch case语句中多个值匹配一个代码块的写法

    switch (num) { case 1: Response.Write("1"); break; case 2: case 3: Response.Write("2| ...

  2. 浅谈JavaScript中forEach与each

    forEach是ES5中操作数组的一种方法,主要功能是遍历数组,例如: var arr = [1,2,3,4]; arr.forEach(alert); 等价于: var arr = [1, 2, 3 ...

  3. MongoDB 存储引擎:WiredTiger和In-Memory

    存储引擎(Storage Engine)是MongoDB的核心组件,负责管理数据如何存储在硬盘(Disk)和内存(Memory)上.从MongoDB 3.2 版本开始,MongoDB 支持多数据存储引 ...

  4. 【.net 深呼吸】使用二进制格式来压缩XML文档

    在相当多的情况下,咱们写入XML文件默认是使用文本格式来写入的,如果XML内容是通过网络传输,或者希望节省空间,特别是对于XML文档较大的情况,是得考虑尽可能地压缩XML文件的大小. XmlDicti ...

  5. MVC 验证码实现( 简易版)

    现在网站上越来越多的验证码,使用场景也是越来越多,登陆.注册.上传.下载...等等地方,都有可能大量使用到验证码,那么制作验证码到底有多简单呢?我们一起来看下最简易版的验证码实现过程- 验证码的基本步 ...

  6. Hibernate(6)—— 一对多 和 多对多关联关系映射(xml和注解)总结

    俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及的知识点总结如下: One to Many 映射关系 多对一单向外键关联(XML/Annotation) 一对多单向外键关联(XM ...

  7. JDK环境变量配置说明

    摘要:被人问到,为什么要配置Path/ClassPath JAVA_HOME,突然感觉有些讲不清楚."新人有资格问一个怪问题,但是老鸟不能给一个烂回答".所以今天为了让自己进一步学 ...

  8. 浏览器加载和渲染HTML的过程(标准定义的过程以及现代浏览器的优化)

    先看一下标准定义的浏览器渲染过程(网上找的): 浏览器打开网页的过程 用户第一次访问网址,浏览器向服务器发出请求,服务器返回html文件: 浏览器开始载入html代码,发现 head 标签内有一个 l ...

  9. 看我是如何处理自定义线程模型---java

    看过我之前文章的园友可能知道我是做游戏开发,我的很多思路和出发点是按照游戏思路来处理的,所以和web的话可能会有冲突,不相符合. 来说说为啥我要自定义线程模型呢? 按照我做的mmorpg或者mmoar ...

  10. 怎样写一个webpack loader

    div{display:table-cell;vertical-align:middle}#crayon-theme-info .content *{float:left}#crayon-theme- ...