CREATE TABLE tracetab_activate (username VARCHAR2(60), action VARCHAR2(20), matchto VARCHAR2(100));
Then when you insert into the table to "turn on" logging of trace information, you provide the string:
INSERT INTO tracetab_activate VALUES ('SAM_I_AM', 'Y', '%INVOICE%');
In this case, I am looking for trace messages which contain the word INVOICE. I would then modify the activated function shown earlier in the article to a procedure which returns a TRUE/FALSE value, to indicate whether or not the trace is activated for this user, as well as the match string. Here is the header for such a procedure:
PACKAGE trace IS . . . PROCEDURE check_activation (turnon_out OUT BOOLEAN, match_out OUT VARCHAR2); . . . END trace;
My trace.startup procedure would call the check_activation routine as follows:
PROCEDURE startup IS v_turnon BOOLEAN; v_match VARCHAR2(100); BEGIN check_activation (v_turnon, v_match); IF v_turnon THEN log (v_match); ELSE nolog; END IF; . . . END:
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.