触发器-6

原创 2012年03月26日 09:59:41

--内置程序包

 

--案例15:验证dbms_output设置选项
SQL>set serveroutput on
SQL> set serveroutput on
SQL> set serveroutput on size 5000


 declare
   str varchar2(20):='hello world!';
  begin
  dbms_output.put(str);  /*结果屏幕上不会显示任何东西,dbms_output.put不具备显示功能*/
  end;
 


 declare
  str varchar2(20):='hello world!';
  begin
  dbms_output.put(str);
  dbms_output.put_line('good');--具有显示功能
  end;
 
/*这里面由于有两次将变量值保存到缓存中,所以打印时将缓存里面所有的值显示出来*/


--案例16-02:演示DBMS_LOB使用

--01.新建表
create table downfilelist
(
id varchar(20) not null primary key,
name varchar(40) not null,  /*文件存放位置*/
filelocation bfile,  /*文件描述*/
description clob
);

--02.新建需要的目录
/*
新建目录格式:;
create or replace directory  目录名 as  ‘本地或网络共享路径名’;
*/

create or replace directory filedir as 'f:\downlist' ;
--或
create or replace directory filedir as '\\servername\downlist' ;

--03.对表的中数据操作
-a.插入数据到表中,对bfile类型的字段使用bfilename函数
insert into downfilelist values ('00001', 'java入门', bfilename(upper('filedir'), 'java.zip'), '这是一本使你快速学会的java教材');

-b.更新lob
select description from downfilelist where id='00001';

update downfilelist set description ='这是一本使你快速学会oracle的书', filelocation=bfilename(upper('filedir'), 'oracle.zip')
where id='00001';

select id, name, description from downfilelist;  /*在sqlplus中需要这样写否则无法显示或则不能写:
select * from downfilelist;
*/


--案例16-02:演示DBMS_LOB使用:read

declare
tempdesc clob;
ireadcount int;
istart int;
soutputdesc varchar(100);
begin
  ireadcount:=5;
  istart:=1;
  select description into tempdesc from downfilelist where id='00001';
dbms_lob.read(tempdesc, ireadcount, istart, soutputdesc); /*从istart取值,取ireadcont个*/
dbms_output.put_line('前五个字符是:'||soutputdesc);
end;


--案例16-03:演示DBMS_LOB使用:getlength
/*统计字符串长度*/
declare
  tempclob clob;
  ilen int;
begin
select description into tempclob from downfilelist where id='00001';
ilen:=dbms_lob.getlength(tempclob);
dbms_output.put_line('描述的字段长度为:'||ilen);
exception
  when others then
   dbms_output.put_line(sqlcode || '  ' ||sqlerrm);
end;


--案例16-03:演示DBMS_LOB使用:write

declare
  tempdesc clob;
  icount int;
  istart int;
  snewvar  varchar2(30);
begin
  icount:=2;
  istart:=1;
  snewvar:='这是非常畅销的书';
  select description into tempdesc from downfilelist
   where id='00001' for update;
   /*修改大数据时可能速度很慢所以锁定以便提高速度*/
dbms_output.put_line('更改前::'||tempdesc);
dbms_output.put_line('从' ||istart || '开始的'||icount ||'个字符将被改写成:'||snewvar);
dbms_lob.write(tempdesc, icount, istart, snewvar);
commit;  /*修改完数据后需要解锁所以提交否则别的用户不能使用数据*/
end;

select * from downfilelist where id=00001;

 

 

版权声明:日常札记,乐于分享

相关文章推荐

数据库实验6 触发器

  • 2011年12月29日 08:42
  • 92KB
  • 下载

6.触发器实现RAM

讲完了触发器,我们就应该应用这些一些东西,比如随机存储器RAM。在平常的生活中,我们喜欢做笔记,这样可以能够完整地存储数据,等到想看的时候再拿出来看,这就是所谓的先存储后访问。存储器也是一样,预先存储...

6.《MySQL必知必会》视图,存储过程,游标与触发器

注:博客中总结《MySQL必知必会》中的知识点,第22,23,24,25章的核心内容;涉及到的操作符:VIEW,PROCEDURE,CALL,DECLARE,IF,REPEAT,END,FETCH,T...

牛腩新闻发布系统笔记6:SQL触发器:实现数据的联动删除

当执行了SQL语句后,自动触发被执行表的触发器,我们可以在这个触发器中添加一些操作,从而实现执行了SQL语句后触发这些操作的目的。 创建触发器: CREATE TRIGGER trig...
  • zhanzkw
  • zhanzkw
  • 2011年08月27日 08:30
  • 562

IC设计基础系列之CDC篇6:从CMOS到触发器(一)

来自:http://www.cnblogs.com/IClearner/ 作为一个微电子专业的IC learner,这个学期也有一门课:《微电子器件》,今天我就来聊聊基本的器件:CMOS器件及...

Oracle数据库--实用操作(6)触发器

触发器       触发器是当特定事件出现时自动执行的存储过程       特定事件可以是执行更新的DML语句和DDL语句       触发器不能被显式调用       触发器的功能: 1....
  • ljheee
  • ljheee
  • 2016年04月16日 21:01
  • 550

MySQL从入门到精通_6触发器的操作

6-触发器的操作 在MySQL数据库中,数据库对象表时存储和操作数据的逻辑结构,而触发器则用来实现由一些表事件触发的某个操作,时与数据库对象表关联最紧密的数据库对象之一,在数据库系统中,当执行表...

mysql 入门基础(6)—触发器、权限和备份

一触发器                     触发器是一种特殊的存储过程,它在插入,删除或修改特定表中的数据时触发执行,它比数据库本身标准的功能有更精细和更复杂的数据控制能力。 Ø  创建...

6.SQL Server DML触发器--INSTEAD OF触发器

本文摘自《锋利的SQL》:http://item.jd.com/10380652.html 在前面讨论的一直都是AFTER触发器。INSTEAD OF在处理约束前激发,可以在INSTEA...

sql2008存储过程与触发器

  • 2017年11月07日 22:21
  • 6.86MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:触发器-6
举报原因:
原因补充:

(最多只允许输入30个字)