PLSQL_WARNINGS参数的使用(for 10g)

本文介绍了如何通过修改PLSQL_WARNINGS参数来启用PL/SQL性能和严重性警告,并展示了如何将特定警告级别设置为错误,以确保代码质量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

最近读了Scott Urman&Ron Hardman的著作《Oracle Database 10g PL/SQL Programming》,里面有一段关于PLSQL_WARNINGS参数的介绍个人觉得非常有用,分享一下:

 

首先,由于  PLSQL_WARNINGS参数的默认值为"DISABLE:ALL",我们需要先使用以下脚本修改默认的配置,开启“performance","severe"两项警告输出:

Alter system set plsql_warnings='enable:performance', 'enable:severe';

这样,在后续编译命名块时,PL/SQL Developer的前端会增加关于警告信息的输出,以下面代码为例:

 

CREATE OR REPLACE PROCEDURE BOOK_INS(
i_ISBN VARCHAR2,
i_Category VARCHAR2,
i_Title VARCHAR2,
i_Num_Pages NUMBER,
i_Price VARCHAR2,
i_Copyright NUMBER,
i_Author1 NUMBER,
i_Author2 NUMBER,
i_Author3 NUMBER)
IS
BEGIN

INSERT INTO BOOKS (
isbn, category, title, num_pages,
price, copyright, author1, author2, author3)
VALUES (
i_ISBN, i_Category, i_Title, i_Num_Pages,
i_Price, i_Copyright, i_Author1, i_Author2, i_Author3);

EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.PUT_LINE('Error: '||sqlerrm);
END;

 

编译后会返回警告信息:

Compilation errors for PROCEDURE SYS.BOOK_INS
Error: PLW-07202: 绑定类型可能会导致从列类型转换为其它类型
Line: 19
Text: i_Price, i_Copyright, i_Author1, i_Author2, i_Author3);


 不过该警告并不会将该命名块定为无效,同时,用户可以先选择将这里的警告“PLW-07202"定义为"错误":

ALTER PROCEDURE BOOK_INS COMPILE PLSQL_WARNINGS='ERROR:07202'; 

 

此脚本定义为只对该命名块有效,其它代码不受影响,由于这样会强制用户更正问题代码,这个方法在性能调优时可能有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值