Oracle PL/SQL自学(二):常用的SQL*PLUS命令
1.回顾
前篇整理了一些PL/SQL的相关概念,对PL/SQL这一结构性编程语言有了基本的了解,本篇开始学习一些SQLPLUS的常用基本命令,为后续的PL/SQL编程做准备。
前文链接:
Oracle PL/SQL自学(一):初识PL/SQL
2.常用命令
2.1 DESC[RIBE]命令
功能:查询表结构;
示例:
SQL> DESC emp
2.2 SET LINE[SIZE] n 和SET PAGESIZE n命令
功能:设置显示屏的显示输出宽度/行数,默认值分别为80/14;
示例:
SQL> SET LINE 100 SQL> SET PAGESIZE 30
2.3 L命令和n text命令
功能:L 显示缓存区内容;n text 使用text替代第n行的内容;
示例:
SQL> L 1 SELECT JOB 2* FROM emp SQL> 1 SELECT SAL SQL> L 1 SELECT SAL 2* FROM emp
2.4 “/”命令
功能:执行缓存区语句;
示例:
SQL> SELECT * FROM emp /** emp表内容 **/ SQL> / /** emp表内容 **/
2.5 n命令和A[PPEND]命令
功能:n 设置当前行;A[PPEND] text 在当前行后追加text;
示例:
SQL> L 1 SELECT JOB 2* FROM emp SQL> 1---------------------------------------设置当前行1 SQL> L 1* SELECT JOB 2 FROM emp SQL> A ,SAL,ENAME----------------------------在行1后追加内容 ,SAL,ENAME SQL> L 1* SELECT JOB,SAL,ENAME 2 FROM emp
2.6 DEL 命令
功能:删除行;
示例:
SQL> l 1 SELECT job,sal 2 FROM emp 3 WHERE sal>2800 4* ORDER BY job,sal DESC SQL> DEL 4 SQL> L 1 SELECT job,sal 2 FROM emp 3* WHERE sal>2800
2.7 C[HANGE] 命令
功能:使用新的正文替代原文;
示例:
SQL> L 1 SELECT job,sal 2 FROM emp 3* WHERE sal>2800 SQL> 1 1* SELECT job,sal SQL> C /job/ename 1* SELECT ename,sal SQL> l 1 SELECT ename,sal 2 FROM emp 3* WHERE sal>2800
2.8 SAVE 命令
功能:将缓存区的语句存入脚本文件;
示例:
SQL> SAVE G:\Oracle\sql\test 已创建 file G:\Oracle\sql\test.sql
2.9 GET 命令
功能:将指定脚本文件的内容装入缓冲区;
示例:
SQL> l 1 select job,ename 2 FROM emp 3* WHERE sal>2800 SQL> GET G:\Oracle\sql\test 1 SELECT ename,sal 2 FROM emp 3* WHERE sal>2800 SQL> l 1 SELECT ename,sal 2 FROM emp 3* WHERE sal>2800 SQL>
2.10 @ 命令
功能:直接运行脚本;
示例:
SQL> @G:\Oracle\sql\test ENAME SAL ---------- ---------- JONES 2975 BLAKE 2850 SCOTT 3000 KING 5000 FORD 3000 SQL>
2.11 SPOOL 命令
功能:导出显示内容;
示例:
SQL> SPOOL G:\Oracle\sql\info-----------------------------开始记录 SQL> SPOOL OFF--------------------------------------------结束记录
2.12 HELP xx 命令
功能:获取如何使用命令xx的信息,help index可列出所有命令;
2.13 show all 命令
功能:查询所有的参数设置;
3.利用AUTOTRACE追踪SQL语句
SQL*PLUS本身就内置了追踪SQL语句的功能,可以通过设置autotrace参数来开关这一功能。
SQL> show autotrace autorace OFF SQL> set autotrace ON SP2-0618: 无法找到会话标识符。启用检查 PLUSTRACE 角色 SP2-0611: 启用 STATISTICS 报告时出错
之所以出现这个问题是因为PLUSTRACE角色没有授予当前用户,或者是没有创建PLUSTRACE角色。
要解决这个问题,执行如下语句即可:
SQL> conn / as sysdba SQL> @G:\oracle\product\10.2.0\db_1\sqlplus\admin\plustrce.sql
然后autotrace就能正常开启了。
SQL> set autotrace ON SQL>
问题解决。
以下是plustrace.sql的内容:
-- -- Copyright (c) Oracle Corporation 1995, 2002. All Rights Reserved. -- -- NAME -- plustrce.sql -- -- DESCRIPTION -- Creates a role with access to Dynamic Performance Tables -- for the SQL*Plus SET AUTOTRACE ... STATISTICS command. -- After this script has been run, each user requiring access to -- the AUTOTRACE feature should be granted the PLUSTRACE role by -- the DBA. -- -- USAGE -- sqlplus "/ as sysdba" @plustrce -- -- Catalog.sql must have been run before this file is run. -- This file must be run while connected to a DBA schema. set echo on drop role plustrace; create role plustrace; grant select on v_$sesstat to plustrace; grant select on v_$statname to plustrace; grant select on v_$mystat to plustrace; grant plustrace to dba with admin option; set echo off
随意执行一个查询语句
SQL> set autotrace traceonly explain-------------------只显示执行计划 SQL> select job,ename from emp; 执行计划 ---------------------------------------------------------- Plan hash value: 3956160932 -------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------- | 0 | SELECT STATEMENT | | 14 | 196 | 3 (0)| 00:00:01 | | 1 | TABLE ACCESS FULL| EMP | 14 | 196 | 3 (0)| 00:00:01 | --------------------------------------------------------------------------
Time是衡量系统效率的重要指标。关于autotrace,在本文中只做粗浅了解,如何使用这个功能来实现对SQL的优化,会放到后面来讨论。
参考:https://docs.oracle.com/cd/B10500_01/server.920/a96533/autotrac.htm
4.Q&A
4.1 Q:何如编辑脚本文件?
A:(1)通过ed直接进行编辑;
SQL> ed G:\Oracle\sql\test
(2)GET指令先将文件内容存入缓存,再使用C、A、n、DEL等指令进行修改,最后SAVE;
SQL> GET G:\Oracle\sql\test SQL> /*修改缓存区内容*/ SQL> SAVE G:\Oracle\sql\test 已创建 file G:\Oracle\sql\test.sqlm0_37868329 原创文章 4获赞 0访问量 216 关注 私信
- oracle sql*plus 常用命令
- Oracle SQL*PLUS与用户操作相关的常用命令
- Oracle SQL*PLUS与用户操作相关的常用命令
- Oracle sqlplus中常用的set命令
- oracle sqlplus 常用命令大全(1)
- 二、oracle sql*plus常用命令
- oracle sqlplus 常用命令大全
- 二、oracle sql*plus常用命令
- oracle sql plus 常用命令
- oracle sqlplus常用命令
- oracle 10g sql*plus常用命令
- oracle sqlplus 常用命令大全
- Oracle常用命令09(pl_sql编程2)
- oracle sqlplus 常用命令大全
- oracle sqlplus 常用命令大全
- oracle sqlplus 常用命令大全
- Oracle 的 Sql*Plus 常用命令介绍
- Oracle sqlplus 常用命令总结
- oracle 10g sql*plus常用命令
- oracle学习 第三章 常用的SQL*PLUS命令 ——02