触发器-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;

 

 

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

数据库中触发器的作用,规则和限制

触发器——看到这个名字总是会想到数电中学过的触发器,有输入端和输出端,根据电平的高低来触发。 数据库中的触发器是个特殊的存储过程,主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名称而被...
  • yuemu26
  • yuemu26
  • 2012年07月03日 12:18
  • 6836

MySQL学习笔记6(触发器)

MySQL学习笔记6(触发器) 触发器(TRIGGER)是由事件来触发某个操作。这些事件包括INSERT语句、UPDATE语句和DELETE语句。当数据库系统执行这些事件时,就会激活触发器执行相应的操...
  • Tan_B
  • Tan_B
  • 2016年03月12日 21:07
  • 235

oracle 笔记6 触发器

--触发器  何云祥制作create or replace trigger secure_test  before insert on test  begin      if(to_char(sysd...
  • swu_zuifeng
  • swu_zuifeng
  • 2008年01月16日 17:24
  • 236

Feekood基本语法(6) - 触发器

触发器是Feekood语法中的一个亮点,主要用以解决UI和游戏的交互问题等,用法灵活多样,方便使用。Feekood中的触发器主要包括对象触发器和函数触发器两种。1.对象触发器对象触发器常用于对精灵等属...
  • wooyoogame
  • wooyoogame
  • 2015年03月15日 12:07
  • 345

MySQL——触发器的创建和使用总结

什么是触发器 触发器(TRIGGER)是MySQL的数据库对象之一,从5.0.2版本开始支持。该对象与编程语言中的函数非常类似,都需要声明、执行等。但是触发器的执行不是由程序调用,也不是由手工启动,...
  • Goskalrie
  • Goskalrie
  • 2016年11月03日 13:34
  • 23525

SQLite的一个触发器实例3

SQLite的触发器的一些结果
  • u013600225
  • u013600225
  • 2016年12月29日 22:32
  • 2777

触发器及其电路分析

概述时序电路是数字逻辑课程的核心部分,也是学习后续硬件相关课程的重要基础部分,PC中的计数器、内存、倍频/分频器等都是典型的时序电路。前面学习的组合电路,电路的输出只与电路的输入相关,不具备保存数据功...
  • iosJohnson
  • iosJohnson
  • 2016年11月10日 17:49
  • 2201

单个触发器判断Insert/Delete/Update操

问题已解决,分享之: 插入操作(Insert):Inserted表有数据,Deleted表无数据 删除操作(Delete):Inserted表无数据,Deleted表有数据 更新操作(Updat...
  • tianwailaibin
  • tianwailaibin
  • 2012年10月25日 15:35
  • 1234

oracle 只导入触发器

服务器的oracle 瘫痪了,重做了一个,导入数据后发现没有触发器,而序列都在。 只能想法将触发器重新导人一下。估计可能是因为全库导出的原因,库里有很多个user,导出或者导入出导致了触...
  • langxiaodi
  • langxiaodi
  • 2010年03月29日 15:10
  • 2631

postgresql 触发器的操作

PostgreSQL的触发器是数据库自动执行指定的数据库事件发生时调用的回调函数。以下是有关PostgreSQL的触发器的要点: PostgreSQL的触发可以指定触发操作前尝试一行(在检查...
  • zhjhwer
  • zhjhwer
  • 2016年05月20日 14:40
  • 2558
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:触发器-6
举报原因:
原因补充:

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