首页 oracle pragma

oracle pragma

举报
开通vip

oracle pragmaPRAGMA是一个编译指示(或命令)。 编译指示在编译时被处理,它们不在运行时执行。 编译指示是对编译程序发出的特殊指令。它也称为伪指令(pseudoinstruction),不会改变程序的含义。它只是向编译程序传递信息 ,实际上它是非常类似于嵌在 SQL 语句的注释中的性能调整提示. EXCEPTION_INIT:将一个特定的错误号与程序中所声明的异常标示符关联起来。 示例:PRAGMA EXCEPTION_INIT(DEADLOCK_DETECTED, -60); EXCEPTION_INIT编译指令,即EX...

oracle pragma
PRAGMA是一个编译指示(或命令)。 编译指示在编译时被处理,它们不在运行时执行。 编译指示是对编译程序发出的特殊指令。它也称为伪指令(pseudoinstruction),不会改变程序的含义。它只是向编译程序传递信息 ,实际上它是非常类似于嵌在 SQL 语句的注释中的性能调整提示. EXCEPTION_INIT:将一个特定的错误号与程序中所声明的异常标示符关联起来。 示例:PRAGMA EXCEPTION_INIT(DEADLOCK_DETECTED, -60); EXCEPTION_INIT编译指令,即EXCEPTION的初始化。语法也简单,PRAGMA EXCEPTION (exception_name, error_number);在处理EXCEPTION 是,当没有已经定义好了的EXCEPTION NAME可用时,我们就用OTHERS来处理未被捕捉的所有的EXCEPTION,PL/SQL设计者建议大家尽量使用已知的EXCEPTION NAME来捕捉,不到最后,www.linuxidc.com尽量不用这个选项,虽然不知道为什么,但估计是跟性能有关,而且编译出来的代码应该会很长。 这个编译指令的引入也为这带来了解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 。比如,我们要捕捉死锁这个EXCEPTION怎么办? 系统没有预定义好的EXCEPTION NAME可用。这时我们就可以用这个编译指令了。 ora-60错误是代表死锁的意思,那我们就可以为这个错误号起一个EXCEPTION NAME,比如DEADLOCK_DETECTED,语法如下: DECLARE DEADLOCK_DETECTED EXCEPTION; PRAGMA EXCEPTION_INIT(DEADLOCK_DETECTED, -60); 好我们就可以像下面一样来捕捉处理这个死锁的EXCEPTION了。 EXCEPTION WHEN DEADLOCK_DETECTED THEN ...... 这样,我们就避免了用when others then来捕捉处理这个异常了。 这个编译指令几乎可以用在所有的程序的声明项中,但要注意作用范围,另外要注意的是记住只为一个错误号起一个EXCEPTION NAME。 下面附上一段通过SQLERRM函数找出ORACLE预定义的错误号码及相应的错误信息。www.linuxidc.com这在10g版本通过,在之前的版本可能会报buffer overflow错误,这是由于set serveroutput on默认为2000字节,但在10g中默认是unlimited了。 SET SERVEROUTPUT ON SPOOL ERRORMSG.LOG DECLARE VMSG VARCHAR2(500); BEGIN FOR I IN 0..20000 LOOP VMSG := SQLERRM(-I); IF INSTR(VMSG,'not found') = 0 THEN DBMS_OUTPUT.PUT_LINE(VMSG); END IF; END LOOP; END; / SPOOL OFF 下面看一个例子 create or replace procedure SP_Del_Test (P_ItemAdmin in mfitem.itemadmin%type, --ItemAdmin P_ItemCd    in mfitem.itemcd%type, --ItemCode P_Return    out number --输出参数 ) is   exp exception;   PRAGMA Exception_Init(exp, -2292); begin   delete from mfitem t   where t.itemcd = P_ItemCd     and t.itemadmin = P_ItemAdmin;  --这一句会引发-2292异常,有级连删除异常 EXCEPTION   WHEN EXP THEN     P_Return := 9;     ROLLBACK;   WHEN OTHERS THEN     ROLLBACK; end SP_Del_Test; 
本文档为【oracle pragma】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_841159
暂无简介~
格式:doc
大小:18KB
软件:Word
页数:0
分类:生活休闲
上传时间:2017-09-19
浏览量:21