第十三章 sqlplus命令(一)

第十三章  sqlplus命令

1. @或start
执行某个文件中的语句,有些系统可以包含文件路径
执行脚本文件时,用COLUMN等命令设置的格式依然有效

此命令还可以执行包含ftp、http格式的命令:
@HTTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2
@FTP://machine_name.domain:port/YEAREND.SQL VAL1 VAL2

在配置了网络服务器的报告中,可以执行动态脚本:
@HTTP://machine_name.domain:port/SCRIPTSERVER?ENDOFYEAR VAL1 VAL2


2. @@
和@差不多
如果在脚本中执行@@file_name.ext,sqlplus将在该脚本相同的目录下运行file_name.ext脚本


3.  /
执行存储在buffer中的最近一次执行的sql或pl/sql块

4. ACCEPT或ACC
语法为:ACCEPT  变量名  数据类型 FORMAT 格式  DEFAULT 默认值 PROMPT xxx|NOPROMPT  HIDE

数据类型包括:[NUM[BER] | CHAR | DATE | BINARY_FLOAT | BINARY_DOUBLE]
日期格式应该是NLS_DATE_FORMAT指定的格式,否则报错

如:
密码输入:ACCEPT pswd CHAR PROMPT 'Password: ' HIDE  指定了隐藏属性

数字格式输入:
ACCEPT salary NUMBER FORMAT '999.99' DEFAULT '000.0' -
PROMPT 'Enter weekly salary: '

日期格式输入:
ACCEPT hired DATE FORMAT 'dd/mm/yyyy' DEFAULT '01/01/2003'-
PROMPT 'Enter date hired: '


5.APPEND或A
在iSQLPlus不能用
语法:APPEND  text
将内容增加到缓冲区当前行(最后一行)的末尾
如果要增加一个分号 需要输入两个分号

6.ARCHIVE LOG
需要sysdba或sysoper权限
语法:ARCHIVE LOG {LIST | STOP} | {START | NEXT | ALL | integer } [TO destination]
显示归档模式,开启、关闭重做日志的归档

list是显示
STOP是停止
START是开始
NEXT是手工手工归档下一个已经填满但未归档的重做日志文件组
ALL是手工归档所有填满但未归档的日志文件或日志组
integer  使日志序号为n的重做日志文件组归档,可以指定仍然在线的重做日志文件组。如果根据文件号未找到对应文

件会报错。
destination 指定归档路径,默认是LOG_ARCHIVE_DEST指定的路径


ARCHIVE LOG 1001 '/vobs/oracle/dbs/arch'  将日志组号为1001的组归档到指定路径


7.ATTRIBUTE
ATTRIBUTE [type_name.attribute_name [option ...]]
where option represents one of the following clauses:
ALI[AS] alias
CLE[AR]
FOR[MAT] format
LIKE {type_name.attribute_name | alias}
ON | OFF

设置了某个对象的属性格式后,在会话中一直有效,知道使用clear column或attribute off命令结束。

如:ATTRIBUTE EMPLOYEE_TYPE.LAST_NAME FORMAT A20
设置empolyee_type的last_name属性格式为20个字符宽度


8.BREAK
语法:BRE[AK] [ON report_element [action [action]]] ...
report_element:{column|expr|ROW|REPORT}
action:[SKI[P] n|[SKI[P]] PAGE][NODUP[LICATES]|DUP[LICATES]]

功能:
压缩重复行的显示
每次有列值变化时跳过一空行
在给定列上的值每次变化时或报告结束时输出统计数量

NODUP[LICATES]表示重复行出现时仅第一行显示,后面显示空格
还可以接compute命令,进行统计信息的显示。

如:
SQL> select * from emp order by deptno;

EMPNO ENAME      JOB         MGR HIREDATE          SAL      COMM DEPTNO
----- ---------- --------- ----- ----------- --------- --------- ------
 7839 KING       PRESIDENT       1981-11-17    5000.00               10
 7782 CLARK      MANAGER    7839 1981-6-9      2450.00               10
 7934 MILLER     CLERK      7782 1982-1-23     5000.00               10
 7902 FORD       ANALYST    7566 1981-12-3     3000.00               20
 7369 SMITH      CLERK      7902 1980-12-17     800.00               20
 7566 JONES      MANAGER    7839 1981-4-2      2975.00               20
 7900 JAMES      CLERK      7698 1981-12-3      950.00               30
 7844 TURNER     SALESMAN   7698 1981-9-8      1500.00      0.00     30
 7654 MARTIN     SALESMAN   7698 1981-9-28     1250.00   1400.00     30
 7521 WARD       SALESMAN   7698 1981-2-22     1250.00    500.00     30
 7499 ALLEN      SALESMAN   7698 1981-2-20     1600.00    300.00     30
 7698 BLAKE      MANAGER    7839 1981-5-1      2850.00               30
SQL> break on deptno skip 1
SQL> select * from emp order by deptno;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT            17-NOV-81       5000                    10
      7782 CLARK      MANAGER         7839 09-JUN-81       2450
      7934 MILLER     CLERK           7782 23-JAN-82       5000

      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20
      7369 SMITH      CLERK           7902 17-DEC-80        800
      7566 JONES      MANAGER         7839 02-APR-81       2975

      7900 JAMES      CLERK           7698 03-DEC-81        950                    30
      7844 TURNER     SALESMAN        7698 08-SEP-81       1500          0
      7654 MARTIN     SALESMAN        7698 28-SEP-81       1250       1400
      有省略……

以下例子,按deptno分页,job不同隔一行、薪水不同也隔一行
SQL> break on deptno skip page on job skip 1 on sal skip 1
SQL> select * from emp order by deptno,job,sal;

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7934 MILLER     CLERK           7782 23-JAN-82       5000                    10


      7782 CLARK      MANAGER         7839 09-JUN-81       2450


      7839 KING       PRESIDENT            17-NOV-81       5000

 

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7902 FORD       ANALYST         7566 03-DEC-81       3000                    20


      7369 SMITH      CLERK           7902 17-DEC-80        800


      7566 JONES      MANAGER         7839 02-APR-81       2975

 

     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 03-DEC-81        950                    30


      7698 BLAKE      MANAGER         7839 01-MAY-81       2850


      7521 WARD       SALESMAN        7698 22-FEB-81       1250        500
      7654 MARTIN                     7698 28-SEP-81                  1400

      7844 TURNER                     7698 08-SEP-81       1500          0


     EMPNO ENAME      JOB              MGR HIREDATE         SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-FEB-81       1600        300         30

 

12 rows selected.


9.BTITLE
语法:BTI[TLE] [printspec [text | variable] ...] | [ON | OFF]
格式包括:
BOLD
CE[NTER]
COL n
FORMAT text
LE[FT]
R[IGHT]
S[KIP] [n]
TAB n

设置页眉信息


10.CHANGE
语法:C[HANGE] sepchar old [sepchar [new [sepchar]]]
iSQLPlus中不能用
更改缓冲区中的内容old,改为new

11.CLEAR或CL
后面的选项包括:
BRE[AKS]
BUFF[ER]
COL[UMNS]
COMP[UTES]
SCR[EEN]
SQL
TIMI[NG]

清空当前设置

12.COLUMN
选项包括:ALI[AS] alias
CLE[AR]
ENTMAP {ON | OFF}
FOLD_A[FTER]  html相关
FOLD_B[EFORE]
FOR[MAT] format 列内容格式
HEA[DING] text  该列标题
JUS[TIFY] {L[EFT] | C[ENTER] | R[IGHT]}
LIKE {expr | alias}  参照某列的格式
NEWL[INE]  显示内容前空一行
NEW_V[ALUE] variable
NOPRI[NT] | PRI[NT]  不输出某一行
NUL[L] text  空值如何显示
OLD_V[ALUE] variable
ON | OFF  OFF将取消所有格式限制
WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]  对于长度超过限制的内容如何处理,wrap是分行,word_wrap表示在保

证单词不跨行的前提下分行显示,tru表示截断

数字格式的详细说明见文档313页

如:
COLUMN REMARKS FORMAT A20 WRAP
结果为:
REMARKS
--------------------
This order must be s
hipped by air freigh
t to ORD

COLUMN REMARKS FORMAT A20 WORD_WRAP
结果为:
REMARKS
--------------------
This order must be
shipped by air freight
t to ORD


COLUMN REMARKS FORMAT A20 TRUNCATE
结果为:
REMARKS
--------------------
This order must be s


13.COMPUTE

语法:
COMP[UTE] [function [LAB[EL] text] ...
OF {expr | column | alias} ...
ON {expr | column | alias | REPORT | ROW} ...]

如:计算每份工作的salary的总和
COMPUTE SUM LABEL 'TOTAL' OF SALARY ON JOB_ID;

SELECT JOB_ID, LAST_NAME, SALARY
FROM EMP_DETAILS_VIEW
WHERE JOB_ID IN ('AC_MGR', 'SA_MAN')
ORDER BY JOB_ID, SALARY;


14.CONNECT
语法:CONN[ECT] { logon | / } [AS {SYSOPER | SYSDBA}]


15.COPY
8i以后不用


16.DEFINE
DEF[INE] [variable] | [variable = text]
所定义变量的值在以下操作前不会改变:
输入一个新的值
undefine撤销定义
accept接受该值
使用NEW_VALUE或OLD_VALUE进行调用,并用select调用
退出sqlplus

sqlplus中默认定义值可以通过如下例子理解:

SQL> define _connect_identifier
DEFINE _CONNECT_IDENTIFIER = "testdb" (CHAR)
SQL> define _DATE
DEFINE _DATE           = "26-DEC-12" (CHAR)
SQL> define _editor
DEFINE _EDITOR         = "ed" (CHAR)
SQL> define _o_release
DEFINE _O_RELEASE      = "1102000100" (CHAR)
SQL> define _PRIVILEGE  如果是sys等,得到的可能是AS SYSDBA 或AS SYSOPER
DEFINE _PRIVILEGE      = "" (CHAR)
SQL> define _sqlplus_release
DEFINE _SQLPLUS_RELEASE = "1102000100" (CHAR)
SQL> define _USER
DEFINE _USER           = "SCOTT" (CHAR)

 

17.DEL
DEL [n | n m | n * | n LAST | * | * n | * LAST | LAST]
iSQLPlus中不可用


18.DESCRIBE
DESC[RIBE] {[schema.]object[@connect_identifier]}
得到表、视图、同义词的列,包声明中的过程和函数信息,类型的信息

19.DISCONNECT
断开连接,不退出sqlplus环境


20.EDIT
iSQLPlus中不能用
ED[IT] [file_name[.ext]]
默认在ORACLE_PATH中查找文件,找不到则到当前目录查找,再找不到则报错

如果未指定文件名,表示编辑当前缓冲区内容,该内容默认存放在AGIEDT.BUF文件中

21.EXECUTE
EXEC[UTE] statement
执行pl/sql语句


22.EXIT
{EXIT | QUIT} [SUCCESS | FAILURE | WARNING | n | variable | :BindVariable] [COMMIT |ROLLBACK]


23.GET
GET [FILE] file_name[.ext] [LIS[T] | NOL[IST]]
将操作系统文件放入sql buffer

24.HELP
帮助


25.HOST
HO[ST] [command]
到操作系统环境执行命令

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26451536/viewspace-753596/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26451536/viewspace-753596/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值