The most commonly adjusted setting is the LONG setting, which controls the maximum number of characters SQL*Plus will display from a LONG.. SET LONGThe LONG setting controls the number o
Trang 1SET SCAN {OFF¦ON}
SET SCAN
Is the command, which may not be abbreviated
OFF
Disables variable substitution, and has the same effect as SET DEFINE OFF
ON
Enables variable substitution, and has the same effect as SET DEFINE ON
The SET SCAN command duplicates functionality provided by the SET DEFINE command
Large Object Settings
Large object settings control the way SQL*Plus handles columns with a datatype of LONG The most commonly
adjusted setting is the LONG setting, which controls the maximum number of characters SQL*Plus will display from a LONG The complete list of LONG settings is shown here:
LOBOFFSET
An index into the LONG column, specifying the first character to be displayed
LONG
Specifies the maximum number of characters to display from a LONG column
LONGCHUNKSIZE
Controls the number of characters retrieved from a LONG at one time
Chapter 7, Advanced Scripting, contains examples showing how to use these three settings.
SET LOBOFFSET
The LOBOFFSET setting represents an index into a LONG column When SQL*Plus displays a LONG, it begins with the character pointed to by LOBOFFSET
SET LOBOF[FSET] offset
where:
SET LOBOF[FSET]
Is the command, which may be abbreviated to SET LOBOF
offset
Is the offset used when retrieving LONG values, and represents the first character you want to display
Using the LOBOFFSET setting in conjunction with the LONG setting allows you to print any arbitrary substring from a LONG column
Trang 2
SET LONG
The LONG setting controls the number of characters displayed by SQL*Plus from any LONG columns returned by a query:
SET LONG long_length
where:
SET LONG
Is the command, which may not be abbreviated
long_length
Represents the number of characters you want displayed from any LONG columns you select from the database The default setting is to display 80 characters
SET LONGCHUNKSIZE
The LONGCHUNKSIZE is a performance-related setting It controls the number of characters retrieved at one time from a LONG column
SET LONG[HUNKSIZE] size
where:
SET LONGC[HUNKSIZE]
Is the command, which may be abbreviated to SET LONGC
size
Is the number of characters you want to retrieve from a LONG column in one fetch The default value is 80
With the default setting of 80 characters, SQL*Plus will need 10 round trips to the database to retrieve an 800-character LONG value These network round trips take time, so you will tend to get better performance by increasing this setting
If you can afford the memory, make LONGCHUNKSIZE equal to the LONG setting That way, the entire LONG value will be retrieved in one fetch
Tuning and Timing Settings
Two settings are useful when tuning SQL statements They are:
AUTOTRACE
Enables the automatic display of the execution plan and execution statistics for a SQL statement
TIMING
Controls whether or not SQL*Plus displays the elapsed execution time for each SQL statement or PL/SQL block
Trang 3
Chapter 8, Tuning and Timing, describes the timing features of SQL*Plus in detail, and also explains how to interpret
the execution plan for a SQL statement
SET AUTOTRACE
The AUTOTRACE setting is used to control whether or not SQL*Plus displays the execution plan and statistics for each SQL statement as it is executed:
SET AUTOT[RACE] {OFF¦ON¦TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
where:
SET AUTOT[RACE]
Is the command, which may be abbreviated to SETAUTOT
OFF
Disables the autotrace feature SQL*Plus will not display the execution plan or the statistics for each SQL statement
ON
Turns the autotrace feature on If no other parameters are supplied, SQL*Plus will default to displaying the statistics SET AUTOTRACE ON is equivalent to SET AUTOTRACE ON STATISTICS
TRACE[ONLY]
Inhibits the display of any data returned when the SQL statement in question is a SELECT statement
EXP[LAIN]
Causes SQL*Plus to display the execution plan for each SQL statement you execute
STAT[ISTICS]
Causes SQL*Plus to display execution statistics for each SQL statement you execute
See Chapter 8 for comprehensive examples showing how to use the autotrace feature of SQL*Plus Chapter 8 also shows you how to interpret the execution plan output and describes the operations that may be used in that plan
SET TIMING
The TIMING setting controls whether or not SQL*Plus displays the elapsed time for each SQL statement or PL/SQL block you execute:
SET TIMI[NG] {OFF¦ON}
where:
SET TIMI[NG]
Is the command, which may be abbreviated to SET TIMI
Trang 4
OFF
Turns the timing feature off This is the default setting
ON
Enables the display of elapsed execution time for SQL statements and PL/SQL blocks
See Chapter 8, for examples of this command
Database Administration Settings
Database administration settings may be used only by database administrators, and control the way SQL*Plus operates when performing administrative tasks such as database recovery These settings are listed below:
AUTORECOVERY
Causes the RECOVER command to run without user intervention
LOGSOURCE
Tells SQL*Plus where to find archive log files for recovery
SET AUTORECOVERY
The AUTORECOVERY option causes the RECOVER command to run without user intervention, as long as the
archived log files are in the destination pointed to by the LOG_ARCHIVE_DEST parameter and the names conform to the LOG_ARCHIVE_FORMAT parameter
SET AUTORECOVERY {OFF¦ON}
where:
SET AUTORECOVERY
Is the command, which may not be abbreviated
OFF
Turns autorecovery off This is the default setting
ON
Turns autorecovery on, causing the RECOVER command to run without user intervention
Chapter 10, Administration with SQL*Plus, talks about recovery in more detail.
SET LOGSOURCE
The LOGSOURCE setting specifies the location of the archive log files, and is referenced during recovery:
SET LOGSOURCE logpath
Trang 5
SET LOGSOURCE
Is the command, which may not be abbreviated
logpath
Is the path to the directory containing the archived redo log files
Miscellaneous Settings
This section describes the following three miscellaneous settings:
COPYTYPECHECK
Controls whether or not type checking is done for the COPY command
EDITFILE
Specifies the name of the work file used when you invoke the EDIT command
INSTANCE
Specifies the default database instance to use with the CONNECT command
SET COPYTYPECHECK
The COPYTYPECHECK setting controls whether or not SQL*Plus checks the datatypes when you use the COPY command to move data between two databases:
SET COPYTYPECHECK {OFF¦ON}
where:
SET COPYTYPECHECK
Is the command, which may not be abbreviated
OFF
Turns type checking off
ON
Enables type checking This is the default setting
This option was created specifically for use when copying data to a DB2 database
SET EDITFILE
The SET EDITFILE command lets you change the name of the work file that is created when you use the EDIT
command to edit the SQL statement in the buffer:
SET EDITF[ILE] edit_filename
Trang 6
SET EDITF[ILE]
Is the command, which may be abbreviated to SET EDITF
edit_filename
Is the filename you want SQL*Plus to use when you issue an EDIT command The default value is afiedt.buf The
filename you specify may optionally include a path
If you do not include an extension as part of the filename, the current value of the SUFFIX setting will be used as the extension
SET INSTANCE
The SET INSTANCE command allows you to specify a default database to connect to when you use the CONNECT command without specifying a service name You cannot issue this command while connected to a database; you must disconnect first
SET INSTANCE [service_name¦ LOCAL]
where:
SET INSTANCE
Is the command, which may not be abbreviated Issuing the command SET INSTANCE with no parameters has the same effect as SET INSTANCE LOCAL
service_name
Is a Net8 (SQL*Net) service name
LOCAL
Sets the default instance to be your local database This is the default setting In a Windows environment, the local
database is the one specified by the LOCAL registry setting
The Show Command
The SHOW command allows you to look at the current state of your SQL*Plus environment You can use it to display the current value of any setting controlled by the SET command SHOW may also be used to look at current page titles, page footers, and so forth
SHO[W] setting
ALL
BTI [TLE]
ERR[ORS] [{FUNCTION ¦ PROCEDURE ¦ PACKAGE ¦ PACKAGE BODY¦
TRIGGER ¦ TYPE ¦ TYPE BODY ¦ VIEW} [owner.] object_name]
LNO
Trang 7
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
where:
SHO[W]
Is the command, which may be abbreviated to SHO
setting
Is any one of the settings you can set using the SET command
ALL
Shows everything, except for errors and the SGA
BTI[TLE]
Displays the current page footer
ERR[ORS]
Displays an error listing for a stored object The command SHOW ERRORS by itself causes the error listing for the most recently created object to be displayed You can get the error listing for a specific object by specifying the object type (function, procedure, and so forth) and the object name
FUNCTION ¦ PROCEDURE ¦ PACKAGE ¦ PACKAGE BODY ¦ TRIGGER ¦ TYPE ¦
TYPE BODY ¦ VIEW
Used with SHOW ERRORS to specify the object type of interest This is only necessary if you are specifying the name
of the object
[owner.]object_name
Used with SHOW ERRORS to name the object for which you want to display an error listing
LNO
Displays the current line number
PARAMETER[S] [parameter_name]
Displays the current value of one or more initialization parameters Chapter 10 provides detailed examples of SHOW PARAMETERS in use
PNO
Displays the current page number
Trang 8
REL[EASE]
Displays the release number (version) of the Oracle database to which you are connected
REPF[OOTER]
Displays the current report footer
REPH[EADER]
Displays the current report header
SGA
Displays information about the current state of the System Global Area See Chapter 10 for more information about this option
SPOO[L]
Tells you whether or not output is currently being spooled to a file
SQLCODE
Displays the SQL code returned by the most recent SQL statement
TTI[TLE]
Displays the current page title
USER
Displays the current username
The following few examples demonstrate how the SHOW command may be used to display the value of one item, such
as a setting or a page title:
SQL> SHOW LINESIZE
linesize 80
SQL> SHOW USER
USER is JEFF
SQL> SHOW TTITLE
ttitle OFF and is the 1st few characters of the next SELECT statement
The ALL option may be used to display the value of all settings at once Here is an example:
SQL> SHOW ALL
appinfo is ON and set to SQL*Plus
arraysize 15
autocommit OFF
autoprint OFF
autotrace OFF
shiftinout INVISIBLE
blockteminator (hex 2e)
As you can see, when you use SHOW ALL, the settings are displayed in alphabetical order
Trang 9
The SHOW ERRORS command has more parameters than the other options, so it's a bit more complex SHOW ERRORS is used to display error listings for stored procedures, stored functions, packages, triggers, and other such objects Typically, you first issue a CREATE statement, and then, if errors are reported, you follow that with a SHOW ERRORS command The
following example uses SHOW ERRORS to display an error listing for the most recent creation attempt:
SQL> CREATE OR REPLACE TRIGGER employee_set_key
2 BEFORE INSERT ON employee
3 FOR EACH ROW
4 BEGIN
5 :new.employee_id := employee_seq.nextval;
6 END;
7 /
Warning: Trigger created with compilation errors
SQL> SHOW ERRORS
Errors for TRIGGER EMPLOYEE_SET_KEY:
LINE/COL
-
ERROR
-
2/3
PL/SQL: Statement ignored
2/3
PLS-00201: identifier EMPLOYEE_SEQ.NEXTVAL must be declared
SQL>
You can show errors for a specific object by telling SQL*Plus both the object type and the object name:
SQL> CREATE OR REPLACE PROCEDURE JEFF.DISABLE_TRIGGER AS
2 BEGIN
3 ALTER TABLE EMPLOYEE DISABLE TRIGGER EMPLOYEE_SET_KEY;
4 END;
5 /
Warning: Procedure created with compilation errors
SQL> SHOW ERRORS PROCEDURE JEFF.DISABLE_TRIGGER
Errors for PROCEDURE JEFF.DISABLE_TRIGGER:
LINE/COL
-
ERROR
-
3/3
PLS-00103: Encountered the symbol ALTER when expecting one of the
following:
Trang 10
begin declare exit for goto if loop mod null pragma raise
return select update while <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
close current delete fetch lock insert open rollback
savepoint set sql commit <a single-quoted SQL string>
The error listings stick around even after you end the session in which you tried to create the object You can come back later, display the errors, and pick up where you left off But when you do that, you must explicitly name the object you are working with