(十七)PL/SQL DBMS输出

DBMS_OUTPUT是一个内置的软件包,能够显示输出显示调试信息,并从PL/ SQL块,子程序,包和触发器发送消息。
让我们来看看一个小的代码片段,将显示在数据库中的所有用户表。

//尝试在数据库列出了所有的表名:
BEGIN
   dbms_output.put_line  (user || ‘ Tables in the database:‘);
   FOR  t  IN (SELECT table_name FROM user_tables)
   LOOP
      dbms_output.put_line(t.table_name);
   END LOOP;
END;
/

一、DBMS_OUTPUT子程序
DBMS_OUTPUT包含有以下子程序:

S.N 子程序及用途
1 DBMS_OUTPUT.DISABLE;                禁止信息输出
2 DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);           启用消息输出。 BUFFER_SIZE=null表示无限的缓冲区大小  
3 DBMS_OUTPUT.GET_LINE (line OUT VARCHAR2, status OUT INTEGER);         检索缓存信息的单行
4 DBMS_OUTPUT.GET_LINES (lines OUT CHARARR, numlines IN OUT INTEGER);     检索来自缓冲器的行的数组
5 DBMS_OUTPUT.NEW_LINE;               放置行结束的标志
6 DBMS_OUTPUT.PUT(item IN VARCHAR2);       放置在所述缓冲器中的部分行
7 DBMS_OUTPUT.PUT_LINE(item IN VARCHAR2);     放置在所述缓冲器中的行

二、示例

DECLARE
   lines dbms_output.chararr;
   num_lines number;
BEGIN
   -- enable the buffer with default size 20000
   dbms_output.enable;

   dbms_output.put_line(‘Hello Reader!‘);
   dbms_output.put_line(‘Hope you have enjoyed the tutorials!‘);
   dbms_output.put_line(‘Have a great time exploring pl/sql!‘);

   num_lines := 3;

   dbms_output.get_lines(lines, num_lines);

   FOR i IN 1..num_lines LOOP
      dbms_output.put_line(lines(i));
   END LOOP;
END;
/

//当上述代码在SQL提示符执行时,它产生了以下结果:
Hello Reader!
Hope you have enjoyed the tutorials!
Have a great time exploring pl/sql!

PL/SQL procedure successfully completed.
时间: 2024-08-04 20:15:32

(十七)PL/SQL DBMS输出的相关文章

pl/sql练习案例

pl/sql练习案例 1,写匿名块,输入三角形三个边的长度.在控制台打印三角形的面积. declare--声明变量v_w number(8,2):=&三角形的底边;v_h number(8,2):=&三角形的高;v_s number(8,2);begin --计算面积 v_s:=(v_w*v_h)/2; --控制台输出 dbms_output.put_line('三角形的面积:'||v_s);end; 2,输入部门编号,在控制台打印这个部门的名称,总人数,平均工资(基本工资+奖金) dec

oracle12 pl/sql

pl/sql块介绍 介绍   块(block)是pl/sql的基本程序单元,编写pl/sql程序实际上就是编写pl/sql块,要完成相对简单的应用功能,可能只需要编写一个pl/sql块,但是如果想要实现复杂的功能,可能需要在一个pl/sql块中嵌套其它的pl/sql块. 块结构示意图 pl/sql块由三个部分构成:定义部分,执行部分,例外处理部分. 如下所示: declare /*定义部分——定义常量.变量.游标.例外.复杂数据类型*/ begin /*执行部分——要执行的pl/sql语句和sq

pl/sql command window 初步接触

pl/sql command window基本操作 PL/SQL Developer应用两年了,今天第一次应用command window. command window类似于sqlplus窗口: 1.用Esc键退出到SQL行. 2.调用存储过程:Begin  procedure xxx(); end; 时,先回车到下一行,再/ ,再按enter键,才能执行出结果. 3.调用存储过程前,需要先打开 set serveroutput on 否则执行不出结果. 4.SQL window中调用完存储过

Oracle之PL/SQL编程_流程控制语句

选择语句 1. if...then 语句 语法: if < condition_expression > then plsql_sentence end if; condition_expression:表示一个条件表达式,其值为 true 时,程序会执行 if 下面的 PL/SQL 语句: 如果其值为 false,则程序会跳过if 下面的语句而 直接执行 end if 后边的语句. plsql_sentence:condition_expression 为 true 时,要执行的语句. 2.

PL/SQL 编程(二)游标、存储过程、函数

游标--数据的缓存区 游标:类似集合,可以让用户像操作数组一样操作查询出来的数据集,实质上,它提供了一种从集合性质的结果中提取单条记录的手段. 可以将游标形象的看成一个变动的光标,他实质上是一个指针,在一段Oracle存放数据查询结果集或者数据操作结果集的内存中,这个指针可以指向结果集任何一条记录. 游标分静态游标和REF游标两类,静态游标包含显式游标和隐式游标. 显式游标: 在使用之前必须有明确的游标声明和定义,这样的游标定义会关联数据查询语句,通常会返回一行或多行.打开游标后,用户可以利用游

(十六)PL/SQL日期及时间

PL/SQL提供两个日期和时间相关的数据类型: 1.日期时间(Datetime)数据类型 DATE TIMESTAMP TIMESTAMP WITH TIME ZONE TIMESTAMP WITH LOCAL TIME ZONE 2.间隔数据类型 INTERVAL YEAR TO MONTH INTERVAL DAY TO SECOND   一.日期时间字段值和间隔数据类型这两个日期时间和间隔数据类型包括字段.这些字段的值确定的数据类型的值.下表列出了时间和间隔的字段及其可能的值. 字段名称

PL/SQL和Oracle对象

PL/SQL -一.变量 01)引用变量 -- 查询并打印7839的姓名和薪水 declare    --定义变量保存姓名和薪水    --pename varchar2(20);    --psal   number;    pename emp.ename%type;    psal   emp.sal%type; begin   -- 得到1234的姓名和薪水   select ename,sal into pename,psal from emp where empno=1234;   

pl/sql练习

创建存储过程出错,可以用show errors查看一下Warning: Procedure created with compilation errors SQL> show errors;Errors for PROCEDURE SCOTT.INSERT_DEPT:LINE/COL ERROR-------- ---------------------------------------------------------------------------------------------

pl/sql编程基础

PL/SQL 1.过程.函数.触发器是pl/sql编写的 2.过程.函数.触发器是存放在oracle数据库中的 3.pl/sql是非常强大的过程化语言 4.过程.函数.触发器可以在java程序中调用 pl/sql编写能节省一点时间就是提高了性能(量大),java直接调用数据库存放的过程,解析时间就节省下来了,提高了性能 模块化的设计思想----->存储过程 网络传输(java程序中编写的sql语言),直接调用数据库的过程节省了传输量 提高安全性(存储过程避免了数据库信息的泄漏) 缺点: 移植性不