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.sql
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能强大的PL/SQL编辑器 编辑器具有语法加强、SQLPL/SQL 帮助、对象描述、代码助手、编辑器提示、重新构建、PL/SQL完善、代码内容、代码层次、代码层叠、超链接导航、 宏程序库和其他先进的功能, Unicode 兼容编辑器可以满足用户最苛刻的要求。这些信息都是自动给你显示的,或者你只要点击一下键就可以了。 集成调试器 集成调试器提供你所需要的全部特性:使用断点模式一步一步的运行、浏览和设定变量、浏览所有堆栈等等。你可以调整任何程序单元,而且还不需要对它作任何的改变,包括触发器和对象类型等的改变。 PL/SQL美化工具 PL/SQL美化工具允许你通过用户自定义规则来格式化SQ和PL/SQL代码。你的代码可以在你编辑、保存或打开文件时自动被美化。这个特点可以增加你的译码效率,而且如果你在大的团体里工作,还可以提高你的PL/SQL代码的可读性。 SQL编辑窗口 SQL编辑窗口允许你进入任何SQL语句或多个语句里,在表格里浏览和编辑结果。你可以很容易的在历史缓冲区找回先前删除的SQL语句。SQL编辑器提供和PL/SQL编辑器一样强大的功能。 命令窗口 你可以用PL/SQL Developer的命令窗口制作和执行SQL脚本。这个窗口和 SQL*Plus有一样的外观,还有有相应语法加强功能的内置编辑器。现在你就编辑你自己的脚本,而且不需要“编辑/保存脚本/切换到SQL*Plus/运行脚本”的循环,另外还不用离开PL/SQL Developer IDE就能完成整个工作。 报表 针对你的应用数据或Oracle代码字典来运行报表,你可以用PL/SQL Developer的内置报表功能。这里有许多的报表标准,你可以很容易的创建你自定义的报表。这些自定义的报表可以保存到一个报表文件中,它可以包括到报表菜单里。这样运行你常用的自定义报表就很容易。 你不需要PL/SQL Developer,直接用免费查询报表软件,在命令栏里运行你的报表。 图表 用图表编辑窗口,你可以创建一些对象的图形表示。用这种方法,你可以很容易的看到你应用的数据库对象或项目和它们的关系。一个图表可以作为一个文件,但也可以作为一个工作区域。右击一个项目就会提供该项目所有功能;双击一个项目就可以调用该项目类型的默认行为。 项目 要组织你的工作,你可以用PL/SQL Developer内置的概念设计。一个项目包括所有的源文件、数据库对象、注解和选项。它允许你在一个特别的项目范围内工作,而不是整个数据库或计划。这样你就可以很容易的找到你需要的项目。 回调测试 对于回调测试,你可以使PL/SQL Developer内置的测试管理器。你可以定义和运行一个测试设置;如果所有测试是正确的,它还可以快速确定下来。若有错误,测试管理器会启动调试器来确认错误原因。 To-Do项目 你可以使用任何SQLPL/SQL源文件的To-Do项目来快速的做一个关于源文件的注解。后面你可以从To-Do清单访问这些信息。 HTML指南 Oracle目前提供在线的HTML格式的指南。你可以把这些手册整合到 PL/SQL Developer环境里,来帮助改正编辑错误、运行错误。 Non-PL/SQL对象 不需要任何的SQL,你就能浏览、创建和修改表格、序列、同义字、库、目录、事件、排列、用户和任务。只需在一个使用简单的表里输入信息,PL/SQL Developer会生成合适的SQL来创建和修改项目。 模板清单 PL/SQL Developer的模块清单是一个真正节约时间的并且能帮你执行标准化的工具。无论你在何时需要插一些标准的SQLPL/SQL代码到编辑器里,无论你在何时需要创建新的程序文件,你只需要点击相应的模块。 查询建立器 图形查询建立器使新选择报表的创建或现有报表的修改变得更简单。PL/SQL Developer的内置插件程序界面允许第三方查询建立器,比如Active Query Builder。 比较用户项目 在改变了表的定义、浏览、程序单元等后,将这些改变复制给其它的数据库用户或找到具体的不同点是很有用的。这可能是另外的一个开发环境、一个测试环境或生产的环境。 用户输出项目 要输出用户选择项目的DDL语句,你可以使用用户输出项目工具。用这种方法,你可以很容易的为另外一个用户创建项目,或者将文件保存下来作为备份。 工具 PL/SQL Developer包括使每天的开发更容易得几个工具。你可以编辑所有忧缺陷的项目、在数据库源里搜索文本、输出和输入表、生成测试数据、输入文本或ODBC数据、比较表数据、模拟dbms_alert 和dbms_pipe等等。 插件扩展名 PL/SQL Developer功能可以通过插件程序扩展。在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值