1. Trang chủ
  2. » Công Nghệ Thông Tin

Oracle SQL Plus The Definitive Guide- P42 doc

10 185 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 101,9 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

This setting is on by default, so you normally get a column heading whenever you select or print data using either the SELECT command or the PRINT command.. You can have SQL*Plus print a

Trang 1

SET HEA[DING] [ON¦OFF]

where:

SETHEA[DING]

Is the command, which may be abbreviated SET HEA

ON

Causes column headings to print when you select data

OFF

Suppresses column headings

This setting is on by default, so you normally get a column heading whenever you select or print data using either the SELECT command or the PRINT command For example:

SQL> SELECT * FROM dual;

D

-

X

Change the value to OFF, and your column headings go away The following example shows this:

SQL> SET HEADING OFF

SQL> SELECT * FROM dual;

X

Issuing a SET PAGESIZE 0 command will also turn headings off If you are trying to enable headings, and SET HEADING ON does not appear to

be working, then you should check the pagesize as well

SETLINESIZE

Use SET LINESIZE to control the number of characters SQL*Plus prints on one physical line The default setting is 80 The maximum width is system-dependent Under Windows 95, it is 32,767

SET LIN[ESIZE] line_width

where:

SET LIN[ESIZE]

Is the command, which may be abbreviated to SET LIN

line_width

Is the new line width, expressed as a number of characters

Trang 2

SET MAXDATA

MAXDATA is an obsolete setting that should no longer be used SQL*Plus supports it in order to be

backward-compatible MAXDATA controls the maximum row length SQL*Plus can handle

SET MAXD[ATA} max_row_width

where:

SETMAXD[ATA]

Is the command, which may be abbreviated to SET MAXD

max_row_width

Is the new setting for the maximum row width you expect to process

The default setting under Windows 95 is zero, but may vary from one operating system to the next Under some

operating systems, such as Windows 95, this setting seems to have no effect whatsoever on SQL*Plus's behavior

SETNEWPAGE

Controls the manner in which the transition from one page to the next is marked You can have SQL*Plus print a

formfeed character at the start of each new page, skip a specific number of lines between pages, or do nothing at all when advancing from one page to another:

SET NEWP[AGE] {lines_to_print¦NONE}

where:

SETNEWP[AGE]

Is the command, which may be abbreviated to SET NEWP

lines_to_print

Tells SQL*Plus to print a specific number of blank lines when a page break occurs These lines will be printed

following the footer (BTITLE) of the page just ending, and prior to the header (TTITLE) of the page just starting If this value is zero, and only if it is zero, a formfeed character will be printed instead of any blank lines The default value is 1

NONE

Causes SQL*Plus to do nothing at all when a page break occursno blank lines, no formfeed

Trang 3

Use SET NEWPAGE 0 if you want a formfeed printed at the start of each new page

SETNULL

SET NULL allows you to change the text SQL*Plus prints in a column when the value for that column is null:

SET NULL null_text

where:

SETNULL

Is the command, which may not be abbreviated

null_text

Is the text you want to print in place of a null value

The default null text setting is an empty string, which causes null values to print as blanks The following example shows this, and also shows how the null text may be changed:

SQL> SELECT employee_termination_date

2 FROM employee

3 WHERE employee_id=101;

EMPLOYEE_

-

SQL> SET HULL *NULL*

SQL> SELECT employee_termination_date

2 FROM employee

3 WHERE employee_id=101;

EMPLOYEE_

-

*NULL*

If you use the COLUMN command to format a column, the NULL clause of that command will override this setting, but only for that one column

SET NUMFORMAT

SET NUMFORMAT allows you to specify the default formatting of numeric values returned from a SELECT

statement Any number format usable with the COLUMN command may also be used with SET NUMFORMAT

SET NUMF[ORMAT] format_spec

Trang 4

Is the command, which may be abbreviated to SET NUMF.

format_spec

Is a numeric format specification, which controls the default manner in which numeric values are displayed See

Appendix B, SQL*Plus Format Elements, for a list of formats.

The following example shows the effect of changing the NUMFORMAT setting:

SQL> SELECT 123456.7 FROM dual;

123456.7

-

123456.7

SQL> SET NUMFORMAT $999,999.99

SQL> SELECT 123456.7 FROM dual;

123456.7

-

$123,456.70

The NUMFORMAT setting controls the default display format for numeric values You can use the COLUMN

command to specify display formats on a column-by-column basis, and those take precedence over the NUMFORMAT setting

SETNUMWIDTH

SET NUMWIDTH controls the default width used when displaying numeric values:

SET NUM[WIDTH] width

where:

SET NUM[WIDTH]

Is the command, which may be abbreviated to SET NUM

width

Is the default column width used when displaying a numeric value

The default NUMWIDTH setting is 10 NUMWIDTH is used only when no other settings apply The following

example shows the effect of setting NUMWIDTH to 5:

SQL> SET NUMWIDTH 5

SQL> SELECT 123 FROM dual;

123

123

Trang 5

A numeric format specified by a COLUMN command or by a SET NUMFORMAT command will override

NUMWIDTH The following example shows this:

SQL> SET NUMWIDTH 5

SQL> SET NUMFORMAT 999,999.99

SQL> SELECT 123 FROM dual;

123

-

123.00

SQL> SHOW NUMWIDTH

numwidth 5

As you can see, NUMWIDTH is still 5, but that value is ignored because the NUMFORMAT setting takes precedence

A long column title can also cause NUMWIDTH to be ignored, as the following example demonstrates:

SQL> SET NUMWIDTH 5

SQL> SET NUMFORMAT

SQL> COLUMN a HEADING This is a long column title

SQL> SELECT 123 a FROM dual;

This is a long column title

-

123

As you can see, the column title takes precedence over NUMWIDTH when it comes to determining the width of the column

SET PAGESIZE

Use SET PAGESIZE to tell SQL*Plus the number of printed lines that will fit on one page of output You can also use this setting to completely turn off all pagination functions

SET PAGES[IZE] lines_on_page

where:

SET PAGES[IZE]

Is the command, which may be abbreviated to SET PAGES

lines_on_page

Is the number of lines you want SQL*Plus to print on one page This includes detail lines, header lines, and footer lines The default value for PAGESIZE is 24 For SQL*Plus versions 2.1 and earlier, the default was 14

The PAGESIZE must be set in conjunction with NEWPAGE The sum of PAGESIZE and NEWPAGE should equal the number of lines that will physically fit on one page SQL*Plus will print headers, detail, and footers until PAGESIZE lines have been printed Then it will print NEWPAGE lines to advance to the next page,

Trang 6

If you use SET NEWPAGE 0 to cause a formfeed to print at the beginning of each page, you should set PAGESIZE to

at least one less than the physical number of lines on a page Failure to do so may result in alternating blank pages in your printed report

You can completely turn off all pagination by issuing a SET PAGESIZE 0 command This will eliminate page titles, page footers, column titles, and any blank lines or formfeeds from the NEWPAGE setting

SET RECSEP

SET RECSEP is used to tell SQL*Plus whether or not to print a record separator between each record displayed as the result of a query The default setting is not to print anything, except when a long record wraps to a second line In that case, a blank line is printed as a record separator

SET RECSEP {WR[APPED] ¦ EA[CH] ¦OFF}

where:

SET RECSEP

Is the command, which may not be abbreviated

WRAPPED]

Tells SQL*Plus to print a record separator only when a line wraps This is the default setting

EA[CH]

Tells SQL*Plus to print a record separator after each record

OFF

Tells SQL*Plus not to print any record separators at all

The default setting is WRAPPED, which is probably a safe choice, because it causes a separator to print only in cases where a break between records may not be obviousin other words, where each line does not necessarily start a new record Here is an example of a record separator being printed:

SQL> COLUMN view_name FORMAT A15

SQL> SELECT view_name FROM all_views;

ALL_ALL_TABLES

ALL_ARGUMENTS

ALL_CATALOG

ALL_CLUSTERS

ALL_CLUSTERS_HAS

Trang 7

H_EXPRESSISONS

ALL_COLL_TYPES

You can see that the record separator, by default a blank line, was printed after the ALL_CLUSTER_HASH_EXPRESSIONS view was listed This blank line removes any ambiguity about whether H_EXPRESSIONS and ALL_CLUSTER_HAS are two separate views or if a long view name has wrapped to a second line Setting RECSEP to OFF yields the following results:

SQL> SET RESCEP OFF

SQL> SELECT VIEW_NAME from all_views;

ALL_ALL_TABLES

ALL_ARGUMENTS

ALL_CATALOG

ALL_CLUSTERS

ALL_CLUSTER_HAS

H_EXPRESSIONS

ALL_COLL_TYPES

Do you see six views listed or seven? How would you know?

In addition to controlling whether or not the record separator prints, you can control the character used as well See the SET RECSEPCHAR command

SET RECSEPCHAR

Use SET RECSEPCHAR to change the record separator to something other than a line of space characters:

SET RECSEPCHAR separator_char

where:

SET RECSEPCHAR

Is the command, which may not be abbreviated

separator_char

Is the character you want to use in the record separator line The default value is a space

The default record separator is a blank line The following example shows how you can change it to be a line of asterisks instead:

SQL> SET RECSEPCHAR *

SQL> SET RECSEP EACH

SQL> SELECT view_name FROM all_views;

ALL_ALL_TABLES

****************************************************************************

ALL_ARGUMENTS

****************************************************************************

ALL_CATALOG

****************************************************************************

Trang 8

SET SHIFTINOUT

The SHIFTINOUT setting controls whether or not shift characters are displayed as part of the output It is usable only with IBM 3270 terminals and their equivalent, and only when SQL*Plus is displaying data in a shift-sensitive character set

SET SHIFT[INOUT] {VIS[IBLE] ¦ INV[ISIBLE]}

where:

SET SHIFT[INOUT]

Is the command, which may be abbreviated to SHIFT

VIS[IBLE]

Allows shift characters to be visible

INV[ISIBLE]

Keeps shift characters from being displayed

The default setting is INVISIBLE

SET SPACE

SET SPACE is an obsolete command similar to SET COLSEP It allows you to specify the number of spaces SQL*Plus prints between columns of output

SET SPACE num_of_spaces

where:

SET SPACE

Is the command, which may not be abbreviated

num_of_spaces

Is the new setting for the number of spaces you want to print between columns The default setting is one space

The following example shows how SET SPACE works by changing the spacing between columns from one to five spaces:

SQL> SELECT A a, B FROM dual;

A B

- -

A B

SQL> SET SPACE 5

Trang 9

SQL> SELECT A a, B FROM dual;

A B

- -

A B

Issuing SET SPACE 5 has the exact same effect as if you were to issue SET COLSEP In fact, the two settings are kept

in sync with one another The SET SPACE command will change the COLSEP setting to match

SET TAB

The TAB setting controls whether or not SQL*Plus uses tab characters when generating whitespace in terminal output This setting is a throwback to the days when terminal connections ran at very slow data rates, such as 1200 bits per second

SET TAB {OFF¦ON}

where:

SET TAB

Is the command, which may not be abbreviated

ON

Is the default setting, and allows SQL*Plus to insert tabs into the output rather than displaying a large number of space characters

OFF

Forces SQL*Plus to use space characters for all whitespace

The default setting is ON, which allows SQL*Plus to use tab characters in the output

SET TRIMOUT

The TRIMOUT setting controls whether or not SQL*Plus displays any trailing spaces that may occur at the end of a line The default setting is ON, which causes SQL*Plus to display only up to the last non-blank character on a line

SET TRIM[OUT] {ON¦OF}

where:

SETTRIM[OUT]

Is the command, which may be abbreviated to SET TRIM

ON

Causes SQL*Plus to trim any trailing spaces from each line before it is displayed This is the default setting

OFF

Causes SQL*Plus to display all characters on a line, even the trailing spaces

Trang 10

SET TRIMSPOOL

The TRIMSPOOL setting controls whether or not SQL*Plus writes trailing spaces when spooling data to a file The default setting is OFF, which causes SQL*Plus to write each line to the spool file in its entirety, trailing spaces and all

SET TRIMS[POOL] {ON¦OFF}

where:

SET TRIMS[POOL]

Is the command, which may be abbreviated to SET TRIMS

ON

Causes SQL*Plus to trim any trailing spaces from each line before it is written to the spool file

OFF

Causes SQL*Plus to write all characters of a line to the spool file, even the trailing spaces This is the default setting

If you are spooling data to a file in order to load it into another program, you will want to leave TRIMSPOOL ON Otherwise, the program reading the spool file might return errors because the records are shorter than expected

SET TRUNCATE

SET TRUNCATE is an obsolete command that gives you the same choice as SET WRAP You can choose whether or not to truncate lines that are longer than the LINESIZE setting

SET TRU[NCATE] (OFF¦ ON}

where:

SET TRU[NCATE]

Is the command, which may be abbreviated to TRU

OFF

Is the default setting, and allows long lines to be wrapped

ON

Causes long lines of output to be truncated to match the current LINESIZE setting

Ngày đăng: 05/07/2014, 04:20

TỪ KHÓA LIÊN QUAN