| 
                         
        
            SQLPlus是一个被DBA和开发人员广泛使用的功能强大的Oracle工具,可以在各个平台上拥有操作的一致性。SQLPlus可以执行输入的SQL语句和SQL文件,通过SQLPlus可以和数据库进行对话。以下例子基于Oracle 11g。  
set命令设置运行环境 
在Oracle 11g中,可以使用set命令来设置SQLPlus的运行环境。set命令语法如下:  
set variable value  
variable为变量名,value为变量值。下面介绍几个常用的set变量。  
pagesize变量 
pagesize变量用来设置从顶部标题到页结束行(包含页首的空行)之间的行数。pagesize的默认值为14:  
SQL> show pagesize pagesize 14  
?  
使用set pagesize命令修改一页的行数为18:  
SQL> set pagesize 18; SQL> select user_id,username,account_status from dba_users; ?  ? USER_ID USERNAME ? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS ---------- ------------------------------ --------------------------------  ? ? ? 74 MGMT_VIEW ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 0 SYS ? ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 5 SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 30 DBSNMP ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 72 SYSMAN ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 84 SCOTT ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 9 OUTLN ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 75 FLOWS_FILES ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 57 MDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 53 ORDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 42 EXFSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 32 WMSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 31 APPQOSSYS ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 78 APEX_030200 ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 83 OWBSYS_AUDIT ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  
?  
可手动数一下是不是18行(lll¬ω¬)。  
newpage变量 
该变量用于设置一页中空行的数量,默认值为1,可以使用set newpage命令改变该值:  
SQL> show newpage newpage 1 SQL> set newpage 5 SQL> select user_id,account_status from dba_users; ? ? ? ? ?  ? USER_ID USERNAME ? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS ---------- ------------------------------ --------------------------------  ? ? ? 74 MGMT_VIEW ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 0 SYS ? ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 5 SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 30 DBSNMP ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 72 SYSMAN ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 84 SCOTT ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 9 OUTLN ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 75 FLOWS_FILES ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 57 MDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 53 ORDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 42 EXFSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  
?  
linesize变量 
该变量用于设置SQLPlus环境中一行所显示的最多字符总数,默认值为80,当pagesize过小时,数据就会出现折行显示的情况。可以使用set linesize命令来调整linesize的值:  
SQL> show linesize linesize 80 SQL> set linesize 120  
?  
pause变量 
用于设置输出结果翻页时,是否暂停,基本语法如下:  
set pause value  
?  
value可取的值有:  
-  
off,默认值,返回结果一次性输出完毕,中间翻页不会暂停;    
 -  
on,表示输出结果的每一页都暂停,用户按ENTER继续;    
 -  
text,在设置为on之后,继续设置text的值,用于暂停时显示;    
 
比如:  
SQL> set pause on SQL> set pause ‘按<enter>键继续‘ SQL> select user_id,account_status from dba_users; 按<enter>键继续 ?  ? USER_ID USERNAME ? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS ---------- ------------------------------ --------------------------------  ? ? ? 74 MGMT_VIEW ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 0 SYS ? ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 5 SYSTEM ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 30 DBSNMP ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 72 SYSMAN ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? 84 SCOTT ? ? ? ? ? ? ? ? ? ? ? ? OPEN  ? ? ? ? 9 OUTLN ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 75 FLOWS_FILES ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 57 MDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 53 ORDSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 42 EXFSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 32 WMSYS ? ? ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 31 APPQOSSYS ? ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 78 APEX_030200 ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED  ? ? ? 83 OWBSYS_AUDIT ? ? ? ? ? ? ? ? ? EXPIRED & LOCKED 按<enter>键继续  
?  
numformat变量 
该变量值用于设置显示数值的默认格式,基本语法如下:  
set numformat format  
?  
format为数值掩码,常用值及其说明如下:  
掩码 |  
   说明 |  
   举例 |  
  
 | 
9 
   查询结果中数字替换格式的掩码 
   999 
  
0 
   格式中的掩码屏蔽掉查询结果中的数字 
   999.00 
  
$ 
   在查询结果中的数字前添加美元前缀 
   $999 
  
S 
   为数字显示符号类型,通常用于显示查询结果中的正负数字 
   S999 
  
, 
   在字符,位置上放置都逗号/td> 
   999,99 
  
查看scott.emp表中的SAL字段值,然后使用”$999,999,999.00”格式显示:
 
SQL> select ename,job,sal from scott.emp;
?
ENAME ? ? JOB ? ? ? ? ? ? SAL
---------- --------- ----------
SMITH ? ? CLERK ? ? ? ? ? 800
ALLEN ? ? SALESMAN ? ? ? 1600
WARD ? ? ? SALESMAN ? ? ? 1250
JONES ? ? MANAGER ? ? ? ? 2975
MARTIN ? ? SALESMAN ? ? ? 1250
BLAKE ? ? MANAGER ? ? ? ? 2850
CLARK ? ? MANAGER ? ? ? ? 2450
SCOTT ? ? ANALYST ? ? ? ? 3000
KING ? ? ? PRESIDENT ? ? ? 5000
TURNER ? ? SALESMAN ? ? ? 1500
ADAMS ? ? CLERK ? ? ? ? ? 1100
SQL> set numformat $999,999.00
SQL> select ename,sal from scott.emp;
?
ENAME ? ? JOB ? ? ? ? ? ? ? ? ? SAL
---------- --------- ----------------
SMITH ? ? CLERK ? ? ? ? ? ? $800.00
ALLEN ? ? SALESMAN ? ? ? ? $1,600.00
WARD ? ? ? SALESMAN ? ? ? ? $1,250.00
JONES ? ? MANAGER ? ? ? ? $2,975.00
MARTIN ? ? SALESMAN ? ? ? ? $1,250.00
BLAKE ? ? MANAGER ? ? ? ? $2,850.00
CLARK ? ? MANAGER ? ? ? ? $2,450.00
SCOTT ? ? ANALYST ? ? ? ? $3,000.00
KING ? ? ? PRESIDENT ? ? ? $5,000.00
TURNER ? ? SALESMAN ? ? ? ? $1,500.00
ADAMS ? ? CLERK ? ? ? ? ? $1,100.00
 
?
 
timing变量
 
该变量用于显示执行SQL语句所花的时间,默认值为off:
 
SQL> set timing on
SQL> select ename,100.00
?
ENAME ? ? JOB ? ? ? ? ? ? ? ? ? SAL
---------- --------- ----------------
JAMES ? ? CLERK ? ? ? ? ? ? $950.00
FORD ? ? ? ANALYST ? ? ? ? $3,000.00
MILLER ? ? CLERK ? ? ? ? ? $1,300.00
?
已选择14行。
?
已用时间: 00: 00: 00.04
 
?
 
set命令还有很多变量可用,可使用help set命令来查看。
 
常用SQLPlus命令
 
help命令
 
help命令用来帮助用户查询指定命令详细介绍,类似于Linux的man,其的语法如下:
 
help|? [topic]
 
?
 
?表示一个命令的部分字符,用于模糊查询;topic参数表示要查询的命令的完整名称。如果直接输入help,则显示的是命令本身的详细信息:
 
SQL> help
?
 HELP
 ----
?
 Accesses this command line help system. Enter HELP INDEX or ? INDEX
 for a list of topics.
?
 You can view SQL*Plus resources at
 ? ? http://www.oracle.com/technology/tech/sql_plus/
 and the Oracle Database Library at
 ? ? http://www.oracle.com/technology/documentation/
?
 HELP|? [topic]
?
?
SQL> help set
?
 SET
 ---
?
 Sets a system variable to alter the SQL*Plus environment settings
 for your current session. For example,to:
 ? ? - ? set the display width for data
 ? ? - ? customize HTML formatting
 ? ? - ? enable or disable printing of column headings
 ? ? - ? set the number of lines per page
?
 SET system_variable value
?
 where system_variable and value represent one of the following clauses:
?
 ? APPI[NFO]{OFF|ON|text} ? ? ? ? ? ? ? ? ? NEWP[AGE] {1|n|NONE}
 ? ARRAY[SIZE] {15|n} ? ? ? ? ? ? ? ? ? ? ? NULL text
 ? AUTO[COMMIT] {OFF|ON|IMM[EDIATE]|n} ? ? NUMF[ORMAT] format
 ? AUTOP[RINT] {OFF|ON} ? ? ? ? ? ? ? ? ? ? NUM[WIDTH] {10|n}
 ? AUTORECOVERY {OFF|ON} ? ? ? ? ? ? ? ? ? PAGES[IZE] {14|n}
 ? AUTOT[RACE] {OFF|ON|TRACE[ONLY]} ? ? ? ? PAU[SE] {OFF|ON|text}
 ? ? [EXP[LAIN]] [STAT[ISTICS]] ? ? ? ? ? ? RECSEP {WR[APPED]|EA[CH]|OFF}
 ? BLO[CKTERMINATOR] {.|c|ON|OFF} ? ? ? ? ? RECSEPCHAR {_|c}
 ? CMDS[EP] {;|c|OFF|ON} ? ? ? ? ? ? ? ? ? SERVEROUT[PUT] {ON|OFF}
 ? COLSEP {_|text} ? ? ? ? ? ? ? ? ? ? ? ? ? [SIZE {n | UNLIMITED}]
 ? CON[CAT] {.|c|ON|OFF} ? ? ? ? ? ? ? ? ? ? [FOR[MAT] {WRA[PPED] |
 ? COPYC[OMMIT] {0|n} ? ? ? ? ? ? ? ? ? ? ? ? WOR[D_WRAPPED] |
 ? COPYTYPECHECK {ON|OFF} ? ? ? ? ? ? ? ? ? ? TRU[NCATED]}]
 ? DEF[INE] {&|c|ON|OFF} ? ? ? ? ? ? ? ? ? SHIFT[INOUT] {VIS[IBLE] |
 ? DESCRIBE [DEPTH {1|n|ALL}] ? ? ? ? ? ? ? ? INV[ISIBLE]}
 ? ? [LINENUM {OFF|ON}] [INDENT {OFF|ON}] ? SHOW[MODE] {OFF|ON}
 ? ECHO {OFF|ON} ? ? ? ? ? ? ? ? ? ? ? ? ? SQLBL[ANKLINES] {OFF|ON}
 ? EDITF[ILE] file_name[.ext] ? ? ? ? ? ? ? SQLC[ASE] {MIX[ED] |
 ? EMB[EDDED] {OFF|ON} ? ? ? ? ? ? ? ? ? ? ? LO[WER] | UP[PER]}
 ? ERRORL[OGGING] {ON|OFF} ? ? ? ? ? ? ? ? SQLCO[NTINUE] {> | text}
 ? ? [TABLE [schema.]tablename] ? ? ? ? ? ? SQLN[UMBER] {ON|OFF}
 ? ? [TRUNCATE] [IDENTIFIER identifier] ? ? SQLPLUSCOMPAT[IBILITY] {x.y[.z]}
 ? ESC[APE] {|c|OFF|ON} ? ? ? ? ? ? ? ? ? SQLPRE[FIX] {#|c}
 ? ESCCHAR {@|?|%|$|OFF} ? ? ? ? ? ? ? ? ? SQLP[ROMPT] {SQL>|text}
 ? EXITC[OMMIT] {ON|OFF} ? ? ? ? ? ? ? ? ? SQLT[ERMINATOR] {;|c|ON|OFF}
 ? FEED[BACK] {6|n|ON|OFF} ? ? ? ? ? ? ? ? SUF[FIX] {SQL|text}
 ? FLAGGER {OFF|ENTRY|INTERMED[IATE]|FULL} TAB {ON|OFF}
 ? FLU[SH] {ON|OFF} ? ? ? ? ? ? ? ? ? ? ? ? TERM[OUT] {ON|OFF}
 ? HEA[DING] {ON|OFF} ? ? ? ? ? ? ? ? ? ? ? TI[ME] {OFF|ON}
 ? HEADS[EP] {||c|ON|OFF} ? ? ? ? ? ? ? ? ? TIMI[NG] {OFF|ON}
 ? INSTANCE [instance_path|LOCAL] ? ? ? ? ? TRIM[OUT] {ON|OFF}
 ? LIN[ESIZE] {80|n} ? ? ? ? ? ? ? ? ? ? ? TRIMS[POOL] {OFF|ON}
 ? LOBOF[FSET] {1|n} ? ? ? ? ? ? ? ? ? ? ? UND[ERLINE] {-|c|ON|OFF}
 ? LOGSOURCE [pathname] ? ? ? ? ? ? ? ? ? ? VER[IFY] {ON|OFF}
 ? LONG {80|n} ? ? ? ? ? ? ? ? ? ? ? ? ? ? WRA[P] {ON|OFF}
 ? LONGC[HUNKSIZE] {80|n} ? ? ? ? ? ? ? ? ? XQUERY {BASEURI text|
 ? MARK[UP] HTML [OFF|ON] ? ? ? ? ? ? ? ? ? ? ORDERING{UNORDERED|
 ? ? [HEAD text] [BODY text] [TABLE text] ? ? ? ? ? ? ORDERED|DEFAULT}|
 ? ? [ENTMAP {ON|OFF}] ? ? ? ? ? ? ? ? ? ? ? NODE{BYVALUE|BYREFERENCE|
 ? ? [SPOOL {OFF|ON}] ? ? ? ? ? ? ? ? ? ? ? ? ? ? DEFAULT}|
 ? ? [PRE[FORMAT] {OFF|ON}] ? ? ? ? ? ? ? ? ? CONTEXT text}
 
?
 
也可以使用help index命令查看SQLPlus命令清单:
 
SQL> help index
?
Enter Help [topic] for help.
?
 @ ? ? ? ? ? ? COPY ? ? ? ? PAUSE ? ? ? ? ? ? ? ? ? SHUTDOWN
 @@ ? ? ? ? ? DEFINE ? ? ? PRINT ? ? ? ? ? ? ? ? ? SPOOL
 / ? ? ? ? ? ? DEL ? ? ? ? PROMPT ? ? ? ? ? ? ? ? ? SQLPLUS
 ACCEPT ? ? ? DESCRIBE ? ? QUIT ? ? ? ? ? ? ? ? ? ? START
 APPEND ? ? ? DISCONNECT ? RECOVER ? ? ? ? ? ? ? ? STARTUP
 ARCHIVE LOG ? EDIT ? ? ? ? REMARK ? ? ? ? ? ? ? ? ? STORE
 ATTRIBUTE ? ? EXECUTE ? ? REPFOOTER ? ? ? ? ? ? ? TIMING
 BREAK ? ? ? ? EXIT ? ? ? ? REPHEADER ? ? ? ? ? ? ? TTITLE
 BTITLE ? ? ? GET ? ? ? ? RESERVED WORDS (SQL) ? ? UNDEFINE
 CHANGE ? ? ? HELP ? ? ? ? RESERVED WORDS (PL/SQL) VARIABLE
 CLEAR ? ? ? ? HOST ? ? ? ? RUN ? ? ? ? ? ? ? ? ? ? WHENEVER OSERROR
 COLUMN ? ? ? INPUT ? ? ? SAVE ? ? ? ? ? ? ? ? ? ? WHENEVER SQLERROR
 COMPUTE ? ? ? LIST ? ? ? ? SET ? ? ? ? ? ? ? ? ? ? XQUERY
 CONNECT ? ? ? PASSWORD ? ? SHOW
 
?
 
describe命令
 
该命令用于查询指定数据表的组成结构,语法如下:
 
desc[ribe] object_name
 
?
 
describe可缩写为desc。
 
比如查询scott.emp表中SALESMAN的编号,姓名和工资,过程中,使用#desc scott.emp命令查询scott.emp表中工资字段的名称:
 
SQL> select empno,ename,
 2 #desc scott.emp
 名称 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 EMPNO ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NOT NULL NUMBER(4)
 ENAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(10)
 JOB ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? VARCHAR2(9)
 MGR ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER(4)
 HIREDATE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? DATE
 SAL ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER(7,2)
 COMM ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER(7,2)
 DEPTNO ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? NUMBER(2)
?
 2 sal from scott.emp where job = ‘SALESMAN‘;
?
 ? ? EMPNO ENAME ? ? ? ? ? ? SAL
---------- ---------- ----------
 ? ? 7499 ALLEN ? ? ? ? ? 1600
 ? ? 7521 WARD ? ? ? ? ? ? 1250
 ? ? 7654 MARTIN ? ? ? ? ? 1250
 ? ? 7844 TURNER ? ? ? ? ? 1500
 
?
 
spool命令
 
该命令可以将查询结果输出到指定文件中,spool的语法格式如下:
 
spo[ol] [file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]] | OFF | OUT]
 
?
 
-  
cre[ate],表示创建一个新的文件,默认值;
   
 -  
rep[lace],表示覆盖已存在的文件;
   
 -  
app[end],表示追加到一个已存在的文件中;
   
 -  
off|out,表示关闭spool输出。
   
比如:
 
SQL> spool d:emp.txt
SQL> select empno,sal from scott.emp;
?
 ? ? EMPNO ENAME ? ? JOB ? ? ? ? ? ? SAL
---------- ---------- --------- ----------
 ? ? 7369 SMITH ? ? CLERK ? ? ? ? ? 800
 ? ? 7499 ALLEN ? ? SALESMAN ? ? ? 1600
 ? ? 7521 WARD ? ? ? SALESMAN ? ? ? 1250
 ? ? 7566 JONES ? ? MANAGER ? ? ? ? 2975
 ? ? 7654 MARTIN ? ? SALESMAN ? ? ? 1250
 ? ? 7698 BLAKE ? ? MANAGER ? ? ? ? 2850
 ? ? 7782 CLARK ? ? MANAGER ? ? ? ? 2450
 ? ? 7788 SCOTT ? ? ANALYST ? ? ? ? 3000
 ? ? 7839 KING ? ? ? PRESIDENT ? ? ? 5000
 ? ? 7844 TURNER ? ? SALESMAN ? ? ? 1500
 ? ? 7876 ADAMS ? ? CLERK ? ? ? ? ? 1100
?
 ? ? EMPNO ENAME ? ? JOB ? ? ? ? ? ? SAL
---------- ---------- --------- ----------
 ? ? 7900 JAMES ? ? CLERK ? ? ? ? ? 950
 ? ? 7902 FORD ? ? ? ANALYST ? ? ? ? 3000
 ? ? 7934 MILLER ? ? CLERK ? ? ? ? ? 1300
?
已选择14行。
?
SQL> spool off
 
?
 
到D盘打开emp.txt如下:
 

 
define命令
 
该命令用来定义一个变量并赋值,基本语法如下:
 
def[ine] [variable] | [variable = text]
 
?
 
比如:
 
SQL> define vjob=‘SALESMAN‘
SQL> define vjob
DEFINE VJOB ? ? ? ? ? = "SALESMAN" (CHAR)
 
?
 
show命令
 
show命令用来显示SQLPlus系统变量的值,语法如下:
 
sho[w] option
 
?
 
option表示要显示的系统选项,常用的值有:all,parameters [parameter_name],sga,spool和user等。
 
SQL> show parameters db_block_size
?
NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE ? ? ? VALUE
------------------------------------ ----------- ------------------------------
db_block_size ? ? ? ? ? ? ? ? ? ? ? integer ? ? 8192
SQL> show sga
?
Total System Global Area 3373858816 bytes
Fixed Size ? ? ? ? ? ? ? ? 2180424 bytes
Variable Size ? ? ? ? ? 1862273720 bytes
Database Buffers ? ? ? ? 1493172224 bytes
Redo Buffers ? ? ? ? ? ? ? 16232448 bytes
SQL> show user
USER 为 "SYSTEM"
 
?
 
save命令
 
该命令将SQL缓冲区的最近一条SQL或PL/SQL块保存到指定的文件中,语法如下:
 
sav[e] [FILE] file_name[.ext] [CRE[ATE] | REP[LACE] | APP[END]]
 
?
 
比如:
 
SQL> select * from scott.dept;
?
 ? DEPTNO DNAME ? ? ? ? LOC
---------- -------------- -------------
 ? ? ? 10 ACCOUNTING ? ? NEW YORK
 ? ? ? 20 RESEARCH ? ? ? DALLAS
 ? ? ? 30 SALES ? ? ? ? CHICAGO
 ? ? ? 40 OPERATIONS ? ? BOSTON
?
SQL> save d:dept.sql
已创建 file d:dept.sql
 
?
 
如果不指定文件扩展名,默认为.sql。
 
get命令
 
该命令将一个SQL脚本文件的内容放进SQL的缓冲区,语法格式如下:
 
get [FILE] file_name[.ext] [LIST | NOLIST]
 
?
 
其中list表示加载到缓冲区的时候显示文件的内容,nolist则表示不显示。
 
比如加载d:dept.sql到SQL缓冲区,并运行命令/执行该语句:
 
SQL> get d:dept.sql list
 1* select * from scott.dept
SQL> /
?
 ? DEPTNO DNAME ? ? ? ? LOC
---------- -------------- -------------
 ? ? ? 10 ACCOUNTING ? ? NEW YORK
 ? ? ? 20 RESEARCH ? ? ? DALLAS
 ? ? ? 30 SALES ? ? ? ? CHICAGO
 ? ? ? 40 OPERATIONS ? ? BOSTON
 
?
 
start和@
 
两个命令都是用于执行一个sql脚本文件,比如:
 
SQL> start d:dept.sql
?
 ? DEPTNO DNAME ? ? ? ? LOC
---------- -------------- -------------
 ? ? ? 10 ACCOUNTING ? ? NEW YORK
 ? ? ? 20 RESEARCH ? ? ? DALLAS
 ? ? ? 30 SALES ? ? ? ? CHICAGO
 ? ? ? 40 OPERATIONS ? ? BOSTON
?
SQL> @ d:dept.sql
?
 ? DEPTNO DNAME ? ? ? ? LOC
---------- -------------- -------------
 ? ? ? 10 ACCOUNTING ? ? NEW YORK
 ? ? ? 20 RESEARCH ? ? ? DALLAS
 ? ? ? 30 SALES ? ? ? ? CHICAGO
 ? ? ? 40 OPERATIONS ? ? BOSTON
 
?
 
格式化查询结果
 
column
 
该命令可以实现格式化查询结果,设置列宽,设置列标题等。语法如下:
 
col[umn] [column_name|alias|option]
 
?
 
column_name用于指定要设置的列的名称,alias用于指定列的别名,option用于指定列的显示格式,其值和说明如下表所示:
 
option选项的值 |  
   说明 |  
  
clear 
   清除指定列所设置的格式,恢复默认值 
  
format 
   格式化指定列 
  
heading 
   指定列标题 
  
justify 
   调整列标题的对齐方式,默认情况下:数值类型的右对齐,其他类型的左对齐 
  
null 
   替换null值 
  
print/noprint 
   显示列标题或隐藏列标题,默认为print 
  
on/off 
   控制定义的显示属性状态,off表示定义的所有显示属性都不起作用 
  
wrapped 
   当字符串的长度超过显示宽度时,将字符串的超出部分折叠到下一行显示 
  
word_wrapped 
   表示从一个完整的字符处折叠 
  
truncated 
   表示截取字符串尾部 
  
format选项
 
使用format选项格式化scott.emp表中的sal列,格式为$999,999.00:
 
SQL> column sal format $999,999.00
SQL> select empno,sal from scott.emp;
?
 ? ? EMPNO ENAME ? ? ? ? ? ? ? SAL
---------- ---------- ------------
 ? ? 7369 SMITH ? ? ? ? ? $800.00
 ? ? 7499 ALLEN ? ? ? ? $1,600.00
 ? ? 7521 WARD ? ? ? ? $1,250.00
 ? ? 7566 JONES ? ? ? ? $2,975.00
 ? ? 7654 MARTIN ? ? ? $1,250.00
 ? ? 7698 BLAKE ? ? ? ? $2,850.00
 ? ? 7782 CLARK ? ? ? ? $2,450.00
 ? ? 7788 SCOTT ? ? ? ? $3,000.00
 ? ? 7839 KING ? ? ? ? $5,000.00
 ? ? 7844 TURNER ? ? ? $1,500.00
 ? ? 7876 ADAMS ? ? ? ? $1,100.00
?
 ? ? EMPNO ENAME ? ? ? ? ? ? ? SAL
---------- ---------- ------------
 ? ? 7900 JAMES ? ? ? ? ? $950.00
 ? ? 7902 FORD ? ? ? ? $3,000.00
 ? ? 7934 MILLER ? ? ? $1,300.00
?
已选择14行。
 
?
 
heading选项
 
使用heading选项将scott.emp表的empno,ename和sal三个列名转换为中文:
 
SQL> column empno heading 员工编号
SQL> column ename heading 员工姓名
SQL> column sal heading 工资
SQL> select empno,sal from scott.emp;
?
 员工编号 员工姓名 ? ? ? ? ? 工资
---------- ---------- ------------
 ? ? 7369 SMITH ? ? ? ? ? $800.00
 ? ? 7499 ALLEN ? ? ? ? $1,100.00
?
 员工编号 员工姓名 ? ? ? ? ? 工资
---------- ---------- ------------
 ? ? 7900 JAMES ? ? ? ? ? $950.00
 ? ? 7902 FORD ? ? ? ? $3,300.00
?
已选择14行。
 
?
 
null选项
 
使用null选项将scott.emp表中comm列值为null显示成“空值”:
 
SQL> column comm null ‘空值‘
SQL> select empno,comm from scott.emp where comm is null;
?
 员工编号 员工姓名 ? ? ? ? COMM
---------- ---------- ----------
 ? ? 7369 SMITH ? ? 空值
 ? ? 7566 JONES ? ? 空值
 ? ? 7698 BLAKE ? ? 空值
 ? ? 7782 CLARK ? ? 空值
 ? ? 7788 SCOTT ? ? 空值
 ? ? 7839 KING ? ? ? 空值
 ? ? 7876 ADAMS ? ? 空值
 ? ? 7900 JAMES ? ? 空值
 ? ? 7902 FORD ? ? ? 空值
 ? ? 7934 MILLER ? ? 空值
?
已选择10行。
 
?
 
wrapped/word_wrapped选项
 
使用wrapped选项实现按照指定长度折行:
 
SQL> create table test(
 2 col1 varchar2(100)
 3 );
?
表已创建。
?
SQL> insert into test(col1) values (‘HOW ARE YOU?‘);
?
已创建 1 行。
?
SQL> select col1 from test;
?
COL1
--------------------------------------------------------------------------------
HOW ARE YOU?
?
SQL> column col1 format a5
SQL> column col1 wrapped
SQL> select col1 from test;
?
COL1
-----
HOW A
RE YO
U?
 
?
 
使用word_wrapped选项按照完整字符串折行
 
SQL> column col1 word_wrapped
SQL> select col1 from test;
?
COL1
-----
HOW
ARE
YOU?
 
?
 
ttitle和btitle命令
 
这两个命令分别用来设置打印时每页的页首和页脚标题,其中ttitle语法如下(btitle语法类似):
 
tti[tle] [printspec [text|variable] ...] | [OFF|ON]
 
?
 
printspec作为头标题的修饰性选项,其值和说明如下表所示:
 
printspec选项的值 |  
   说明 |  
  
col 
   指定当前行的第几列打印头标题 
  
skip 
   跳到从下一行开始的第几行,默认为1 
  
left 
   在当前行中左对齐打印数据 
  
center 
   在当前行中间打印数据 
  
right 
   在当前行中右对齐打印数据 
  
bold 
   以黑体打印数据 
  
比如:打印输出scott.salgrade数据表中的记录,并设置标题:
 
SQL> set pagesize 8
SQL> ttitle left ‘销售情况排行表‘
SQL> btitle left ‘打印日期2017年11月5日 打印人 MrBird‘
SQL> select * from scott.salgrade;
?
销售情况排行表
 ? ? GRADE ? ? LOSAL ? ? HISAL
---------- ---------- ----------
 ? ? ? ? 1 ? ? ? 700 ? ? ? 1200
 ? ? ? ? 2 ? ? ? 1201 ? ? ? 1400
 ? ? ? ? 3 ? ? ? 1401 ? ? ? 2000
打印日期2017年11月5日 打印人 aaa
?
销售情况排行表
 ? ? GRADE ? ? LOSAL ? ? HISAL
---------- ---------- ----------
 ? ? ? ? 4 ? ? ? 2001 ? ? ? 3000
 ? ? ? ? 5 ? ? ? 3001 ? ? ? 9999
?
打印日期2017年11月5日 打印人 aaa
        
            
        	
                        (编辑:52站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!