When you compile and store code in SQL*Plus, any blank lines in your source code are discarded. This annoying "undocumented feature" wreaks havoc at compile time. If there are any compile errors, the line number stored in USER_ERRORS and returned by SHOW ERRORS almost never matches the line number of the code in your operating system file. What an annoyance!
The situation gets even worse when you really want to preserve those blank lines for readability. The PLVhlp package, for example, provides an architecture for online help. Without blank lines in the help text, it would be very difficult to make this text understandable. It would be awfully nice to be able to preserve those blank lines -- or at least make a line appear to be blank when displayed.
The p package recognizes this need and allows you to specify a line separator character. If a line of text passed to p.l consists only of the line separator character, it is displayed as a blank line.
You set the line separator with the set_linesep procedure , whose header is:
PROCEDURE set_linesep (linesep_in IN VARCHAR2);
You can retrieve the current line separator character with the linesep function :
FUNCTION linesep RETURN VARCHAR2;
The default line separator character is =. As a result, if I execute the following anonymous block,
BEGIN p.l ('this'); p.l ('='); p.l ('is'); p.l ('='); p.l ('separated!'); END; /
I see this output:
this is separated!
Copyright (c) 2000 O'Reilly & Associates. All rights reserved.