现在的位置: 首页 > 综合 > 正文

oracle pl/sql 高级编程第四章 调试

2013年03月28日 ⁄ 综合 ⁄ 共 929字 ⁄ 字号 评论关闭
4.1 编写DEBUG 程序包(例程)
CREATE OR REPLACE PACKAGE yang_debug AS
PROCEDURE out(p_comments IN VARCHAR2, p_varible IN VARCHAR2);
PROCEDURE Erase;
END yang_debug;
CREATE OR REPLACE PACKAGE BODY yang_debug AS
PROCEDURE out(p_comments IN VARCHAR2, p_varible IN VARCHAR2) IS
l_file UTL_FILE.FILE_TYPE;
BEGIN
l_file := UTL_FILE.FOPEN('d:/test', 'debug.log', 'a');
UTL_FILE.PUT_LINE(l_file, TO_CHAR(sysdate, 'yyyy-mm-dd 24HH:MM:SS ') ||
',Comment: ' || p_comments || ', Varible: ' || p_varible);
UTL_FILE.FCLOSE(l_file);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR:' || TO_CHAR(SQLCODE) || SQLERRM);
NULL;
END out;
PROCEDURE Erase IS
l_file UTL_FILE.FILE_TYPE;
BEGIN
l_file := UTL_FILE.FOPEN('d:/test', 'debug.log', 'w');
UTL_FILE.FCLOSE(l_file);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('ERROR:' || TO_CHAR(SQLCODE) || SQLERRM);
NULL;
END Erase;
END yang_debug;
/
4.2 调用函数
CREATE OR REPLACE PROCEDURE assert(
condition IN BOOLEAN,
message IN VARCHAR2 ) AS
BEGIN
IF NOT condition THEN
RAISE_AAPLICATION_ERROR(-20000, message);
END IF;
END assert;

抱歉!评论已关闭.