Oracle学习笔记十四 内置程序包

  • 扩展数据库的功能
  • 为 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 块和子程序的调试信息。

SET SERVEROUTPUT ON
BEGIN
  DBMS_OUTPUT.PUT_LINE(‘打印三角形‘);
  FOR i IN 1..9 LOOP
    FOR j IN 1..i LOOP
      DBMS_OUTPUT.PUT(‘*‘);
    END LOOP for_j;
    DBMS_OUTPUT.NEW_LINE;
  END LOOP for_i;
END;

DBMS_LOB 包提供用于处理大型对象的过程和函数

DBMS_XMLQUERY 包用于将查询结果转换为 XML 格式

DECLARE
  result CLOB;
  xmlstr VARCHAR2(32767);
  line   VARCHAR2(2000);
  line_no INTEGER := 1;
BEGIN
  result := DBMS_XMLQuery.getXml(‘SELECT empno, ename
  FROM employee‘);
  xmlstr := DBMS_LOB.SUBSTR(result,32767);
  LOOP
    EXIT WHEN xmlstr IS NULL;
    line := SUBSTR(xmlstr,1,INSTR(xmlstr,CHR(10))-1);
    DBMS_OUTPUT.PUT_LINE(line_no || ‘:‘ || line);
    xmlstr := SUBSTR(xmlstr,INSTR(xmlstr,CHR(10))+1);
    line_no := line_no + 1;
  END LOOP;
END;

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

SET SERVEROUTPUT ON

 DECLARE
   l_num   NUMBER;
   counter NUMBER;
BEGIN
   counter:=1;
   WHILE counter <= 10
   LOOP
     l_num := DBMS_RANDOM.RANDOM;
     DBMS_OUTPUT.PUT_LINE(l_num);
     counter:=counter+1;
   END LOOP;
END;

UTL_FILE 包用于读写操作系统文本文件,操作文件的一般过程是打开、读或写、关闭

CREATE DIRECTORY TEST_DIR AS ‘C:\DEVELOP‘;

UTL_FILE 包指定文件路径依赖于 DIRECTORY 对象

GRANT READ, WRITE ON DIRECTORY TEST_DIR TO SCOTT;
SET SERVEROUTPUT ON

DECLARE
  input_file   UTL_FILE.FILE_TYPE;
  input_buffer VARCHAR2(4000);
BEGIN
  input_file := UTL_FILE.FOPEN(‘TEST_DIR‘, ‘employees.xml‘, ‘r‘);
  LOOP
    UTL_FILE.GET_LINE(input_file,input_buffer);
    DBMS_OUTPUT.PUT_LINE(input_buffer);
  END LOOP;
  UTL_FILE.FCLOSE(input_file);
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE(‘------------------‘);
END;
时间: 2024-10-17 05:27:11

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

《iOS应用逆向工程》学习笔记(四)iOS程序类型

越狱iOS中最常见的程序有Application, Dynamic Library和Daemon三类. 1.Application 除了传统意义上的App外,越狱iOS平台上还有两种App形式的存在:WeeApp(依附于NotificationCenter的App)和PreferenceBundle(依附于Settings的App),常见于Cydia平台. 普通App的bundle中存放的是可执行程序和所需资源,而framework的bundle中存放的是动态链接库. 主要关注App中的三个部分

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

laravel3学习笔记(十四)

原作者博客:ieqi.net ==================================================================================================== 运行时配置 在 Laravel3 中很多地方我们都可以看到“约定大于配置”的影子,我本人也很喜欢这种工程哲学尤其是在框架领域,当然这并不能代替所有的配置.我们知道 Laravel3 中,主要配置都写在 application/config 文件夹下,在应用逻辑中,往往

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

子程序 子程序:命名的 PL/SQL 块,编译并存储在数据库中. 子程序的各个部分: 1.声明部分 2.可执行部分 3.异常处理部分(可选) 子程序的分类: 1.过程 - 执行某些操作 2.函数 - 执行操作并返回值 子程序的优点: 模块化 将程序分解为逻辑模块 可重用性 可以被任意数目的程序调用 可维护性 简化维护操作 安全性 通过设置权限,使数据更安全 存储过程 过程是用于完成特定任务的子程序. 例如: 一个购票过程可以分为很多个子过程,分别完成. 创建存储过程 创建过程的语法: CREAT

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

 MySQL常用内置函数 说明: 1)可以用在SELECT/UPDATE/DELETE中,及where,orderby,having中 2)在函数里将字段名作为参数,变量的值就是字段所对应的每一行的值. 3)在程序设计语言如C++中提供的函数,MySQL大部分也提供了,关于MySQL函数的完整信息,请参阅<MySQL参考手册> 一.字符串函数[比较常用,需要掌握] 1. concat(s1,s2,...,sn) #把传入的参数连接成一个字符串 selectconcat('abc','def

Oracle学习笔记十 使用PL/SQL

PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言,是对 SQL 的扩展,它支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构,可用于创建存储过程.触发器和程序包,给SQL语句的执行添加程序逻辑,与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性.灵活性和安全性. PL/SQL 的优点 支持 SQL,在 PL/SQL 中可以使用: 1.数据操纵命令 2.事务控制命令 3.游标控制 4.

Oracle基础笔记十四

第十四章 高级子查询 1.子查询 子查询 (内查询) 在主查询执行之前执行 主查询(外查询)使用子查询的结果 SELECT select_list FROM table WHERE expr operator (SELECT select_list FROM  table); 问题:查询工资大于149号员工工资的员工的信息 SELECT last_name FROM   employees WHERE  salary > (SELECT salary FROM   employees WHERE

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

本篇主要介绍$watch的基本概念: $watch是所有控制器的$scope中内置的方法: $scope.$watch(watchObj,watchCallback,ifDeep) watchObj: 需要被检测的对象,可以是以下任意一种: 1. 某个数据,监测这个数据的值是否发生变化 2. 一条angular表达式,监测表达式的结果是否发生变化 3. 函数(),监测函数的返回值是否发生变化 注意,以上三种,无论是哪种,都应该是字符串格式,并且都是在$scope作用域下执行的. 4.函数,非字符

javascript学习笔记 - 引用类型 单体内置对象

七 单体内置对象 1.Global对象 不属于任何对象的属性和方法,都归于它.全局作用域中定义的变量.函数,都属于Global对象 1.1 URI编码  encodeURI <=>decodeURI 不会编码本身属于uri的特殊字符 encodeURIComponent  <=> decodeURIComponet 将所有非标准字符进行编码 1.2 window对象 在web浏览器中,一般是将Global对象当作window对象的一部分.因此全局作用域中的变量.函数,都可以通过wi