`
chenyubo
  • 浏览: 79783 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

SQL*PLUS命令的使用大全(二)

阅读更多
21.再次执行刚才已经执行的sql语句
RUN
or
/
 
22.执行一个存储过程
EXECUTE procedure_name
 
23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
 
24.设置每个报表的顶部标题
TTITLE
 
25.设置每个报表的尾部标题
BTITLE
 
26.写一个注释
REMARK [text]
 
27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]
 
28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]
 
Sql>PAUSE Adjust paper and press RETURN to continue.
 
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
 
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST 
create emp_temp
USING SELECT * FROM EMP
 
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST
 
Sql> host hostname
该命令在windows下可能被支持。
 
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
!
 
sql>!
$hostname
$exit
sql>
 
该命令在windows下不被支持。
 
32.显示sql*plus命令的帮助
HELP
如何安装帮助文件:
Sql>@ ?\sqlplus\admin\help\hlpbld.sql ?\sqlplus\admin\help\helpus.sql
Sql>help index
 
33.显示sql*plus系统变量的值或sql*plus环境变量的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
 
1) . 显示当前环境变量的值:
Show all
 
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
 
3) . 显示初始化参数的值:
show PARAMETERS [parameter_name]
 
4) . 显示数据库的版本:
show REL[EASE]
 
5) . 显示SGA的大小
show SGA
 
6). 显示当前的用户名
show user

34.查询一个用户下的对象
SQL>select * from tab;
SQL>select * from user_objects;

35.查询一个用户下的所有的表
SQL>select * from user_tables;

36.查询一个用户下的所有的索引
SQL>select * from user_indexes;


37. 定义一个用户变量
方法有两个:
a. define
b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]
                            OLD_V[ALUE] variable  [NOPRI[NT]|PRI[NT]]

下面对每种方式给予解释:
a. Syntax
DEF[INE] [variable]|[variable = text]
定义一个用户变量并且可以分配给它一个CHAR值。

assign the value MANAGER to the variable POS, type:
SQL> DEFINE POS = MANAGER

assign the CHAR value 20 to the variable DEPTNO, type:
SQL> DEFINE DEPTNO = 20

list the definition of DEPTNO, enter
SQL> DEFINE DEPTNO
        ―――――――――――――――
DEFINE DEPTNO = ”20” (CHAR)

定义了用户变量POS后,就可以在sql*plus中用&POS或&&POS来引用该变量的值,sql*plus不会再提示你给变量输入值。

b. COL[UMN] [{column|expr} NEW_V[ALUE] variable [NOPRI[NT]|PRI[NT]]
NEW_V[ALUE] variable
指定一个变量容纳查询出的列值。
例:column col_name new_value var_name noprint
   select col_name from table_name where ……..
将下面查询出的col_name列的值赋给var_name变量.

一个综合的例子:
得到一个列值的两次查询之差(此例为10秒之内共提交了多少事务):
column redo_writes new_value commit_count

select sum(stat.value) redo_writes
from v$sesstat stat, v$statname sn
where stat.statistic# = sn.statistic#
and sn.name = 'user commits';

-- 等待一会儿(此处为10秒);
execute dbms_lock.sleep(10);

set veri off
select sum(stat.value) - &commit_count commits_added
from v$sesstat stat, v$statname sn
where stat.statistic# = sn.statistic#
and sn.name = 'user commits';


38. 定义一个绑定变量
VAR[IABLE] [variable [NUMBER|CHAR|CHAR (n)|NCHAR|NCHAR (n) |VARCHAR2 (n)|NVARCHAR2 (n)|CLOB|NCLOB|REFCURSOR]]
定义一个绑定变量,该变量可以在pl/sql中引用。
可以用print命令显示该绑定变量的信息。
如:
column inst_num  heading "Inst Num"  new_value inst_num  format 99999;
column inst_name heading "Instance"  new_value inst_name format a12;
column db_name   heading "DB Name"   new_value db_name   format a12;
column dbid      heading "DB Id"     new_value dbid      format 9999999999 just c;

prompt
prompt Current Instance
prompt ~~~~~~~~~~~~~~~~

select d.dbid            dbid
     , d.name            db_name
     , i.instance_number inst_num
     , i.instance_name   inst_name
  from v$database d,
       v$instance i;

variable dbid       number;
variable inst_num   number;
begin
  :dbid      :=  &dbid;
  :inst_num  :=  &inst_num;
end;
/
说明:
在sql*plus中,该绑定变量可以作为一个存储过程的参数,也可以在匿名PL/SQL块中直接引用。为了显示用VARIABLE命令创建的绑定变量的值,可以用print命令

注意:
绑定变量不同于变量:
1.        定义方法不同
2.        引用方法不同
绑定变量::variable_name
        变量:&variable_name or &&variable_name
3.在sql*plus中,可以定义同名的绑定变量与用户变量,但是引用的方法不同。

39. &与&&的区别
&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。
&&用来创建一个持久变量,就像用用define命令或带new_vlaue字句的column命令创建的持久变量一样。当用&&命令引用这个变量时,不会每次遇到该变量就提示用户键入值,而只是在第一次遇到时提示一次。

如,将下面三行语句存为一个脚本文件,运行该脚本文件,会提示三次,让输入deptnoval的值:
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;
select count(*) from emp where deptno = &deptnoval;

将下面三行语句存为一个脚本文件,运行该脚本文件,则只会提示一次,让输入deptnoval的值:
select count(*) from emp where deptno = &&deptnoval;
select count(*) from emp where deptno = &&deptnoval;
select count(*) from emp where deptno = &&deptnoval;

40.在输入sql语句的过程中临时先运行一个sql*plus命令(摘自www.itpub.com)
#
有没有过这样的经历? 在sql*plus中敲了很长的命令后, 突然发现想不起某个列的名字了, 如果取消当前的命令,待查询后再重敲, 那太痛苦了. 当然你可以另开一个sql*plus窗口进行查询, 但这里提供的方法更简单.

比如说, 你想查工资大于4000的员工的信息, 输入了下面的语句:

SQL> select deptno, empno, ename
2 from emp
3 where
这时, 你发现你想不起来工资的列名是什么了.

这种情况下, 只要在下一行以#开头, 就可以执行一条sql*plus命令, 执行完后, 刚才的语句可以继续输入

SQL>> select deptno, empno, ename
2 from emp
3 where
6 #desc emp
Name Null? Type
----------------------------------------- -------- --------------
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)

6 sal > 4000;

DEPTNO EMPNO ENAME
---------- ---------- ----------
10 7839 KING

41. SQLPlus中的快速复制和粘贴技巧(摘自www.cnoug.org)
1) 鼠标移至想要复制内容的开始
2) 用右手食指按下鼠标左键
3) 向想要复制内容的另一角拖动鼠标,与Word中选取内容的方法一样
4) 内容选取完毕后(所选内容全部反显),鼠标左键按住不动,用右手中指按鼠标右键
5) 这时,所选内容会自动复制到SQL*Plus环境的最后一行
分享到:
评论

相关推荐

    SQL*PLUS命令的使用大全

    - **SQL*Plus命令**:这些命令主要用于对输出结果进行格式化处理,帮助用户更好地阅读和理解查询结果。执行SQL*Plus命令不会影响SQL缓冲区的内容。 #### 三、SQL*Plus命令详解 接下来详细介绍部分常见的SQL*Plus...

    sql*plus 命令大全

    #### 二、SQL*Plus命令详解 ##### 1. 执行脚本文件 在SQL*Plus中,可以通过`START`或简写为`@`命令来执行一个包含SQL语句的外部文件。这在批量处理SQL语句时非常有用。 - **命令格式**: ```sql SQL> START ...

    Oracle SQL*Plus Pocket Reference, 2nd Edition

    ### Oracle SQL*Plus 口袋参考手册第二版关键知识点概览 #### 1.1 引言 本书《Oracle SQL*Plus Pocket Reference, 2nd Edition》是一部针对Oracle SQL*Plus及其常用SQL查询和数据操作语句的快速参考指南。作者...

    大型数据库技术-实验二 Oracle SQL PLUS环境与查询.doc

    1. **SQL*PLUS环境与常用命令** - **启动SQL*PLUS**:通常通过命令行输入`sqlplus 用户名/密码`来登录。 - **断开连接**:在SQL*PLUS环境中输入`DISCONNECT`。 - **退出SQL*PLUS**:输入`EXIT`或`QUIT`。 2. **...

    SQL*Plus之命令使用大集合.pdf

    ### SQL*Plus命令使用详解 #### 一、执行SQL脚本文件 - **命令**: `@脚本文件路径` - **功能**: 直接在SQL*Plus环境中执行指定路径下的SQL脚本文件。 - **示例**: `@C:\scripts\my_script.sql` #### 二、对当前...

    Oracle(四):和SQL*Plus命令来场邂逅

    目录写在开头一、SQL*Plus的运行环境二、SQL*Plus命令三、格式化查询结果四、缓冲区写在结尾 写在开头 在数据库系统中,使用两种方式执行命令,一种是通过图形化工具,另一种是直接使用各种命令。 图形化工具:直观...

    SQL*Plus用户指南与参考

    《SQL*Plus用户指南与参考》是一本专为Oracle数据库管理员和开发人员设计的重要参考资料,它详尽地介绍了如何使用SQL*Plus这个强大的命令行工具。SQL*Plus是Oracle数据库系统的一部分,允许用户直接交互地执行SQL...

    sql_plus.rar_plus

    在sql*plus中,可以运行sql*plus命令与sql语句。 我们通常所说的DML、DDL、DCL语句都是sql语句,它们执行完后,都可以保存在一个被称为sql buffer的内存区域中,并且只能保存一条最近执行的sql语句,我们可以对保存...

    SQL*Plus Getting Started Release 8.1.6 for Windows

    3. SQL*Plus 的命令分类:SQL*Plus 命令可以分为两类:SQL 命令和非 SQL 命令。SQL 命令用于执行 SQL 语句,而非 SQL 命令用于执行其他操作,如设置环境变量、执行脚本等。 4. SQL*Plus 的基本命令:SQL*Plus 提供...

    SQL*Plus Quick Reference Release 8.1.7

    SQL*Plus 是 Oracle corporation 开发的一款强大的数据库管理工具,本 Quick Reference 释义了 SQL*Plus 的命令语法和使用方法。下面我们将详细介绍 SQL*Plus 的命令语法、基本使用、数据库访问、查询结果格式化、...

    SQL*Plus User’s Guide and Reference Release 8.1.7

    本手册提供了 SQL*Plus 的使用指南和参考手册,涵盖了 SQL*Plus 的基本概念、命令、格式、选项、变量、报表生成、图形化查询等方面的知识点。 基本概念 SQL*Plus 是一个命令行工具,允许用户通过命令行方式与 ...

    SQL*PLUS资料

    5. **SQL*PLUS命令** - SQL*PLUS提供了许多增强功能的命令,如设置输出格式(`SET LINESIZE`, `SET PAGESIZE`),执行脚本(`@脚本文件名`),退出SQL*PLUS(`EXIT`或`QUIT`)等。 6. **安全性与权限** - Oracle数据库...

    常用SQL*Plus语句:

    四、SQL*Plus命令: 1. EXECUTE语句:用于执行存储过程。 2. SHOW语句:用于显示当前连接用户。 3. DESCRIBE语句:用于显示表结构。 例如: EXECUTE 过程名; SHOW USER; DESCRIBE 表名; 五、其它功能: 1. 数据...

    SQL*Plus Quick Reference Release 9.2

    9. **输入和执行命令**:这部分详细说明如何在SQL*Plus中输入SQL语句、SQL*Plus命令以及PL/SQL块,并执行它们。 10. **操纵SQL、SQL*Plus和PL/SQL命令**:这部分涵盖了命令的修改、撤销、重做等操作,以及如何处理...

Global site tag (gtag.js) - Google Analytics