Oracle 10g SQL*Plus命令实践

 

1、连接Oracle数据库

启动SQL*Plus,要求输入User Name、Password、Host String这三个参数,例如我在安装的时候默认创建的数据库为orcl,也就是SID,密码也为orcl,对应上面的三个参数如下所示:

User Name:orcl

Password:orcl

Host String:orcl as sysdba

就可以登录成功。

或者也可以使用默认的scott来登录:

User Name:scott

Password:tiger

Host String:orcl

当连接Oracle数据库成功的时候,可以通过在提示符“sql>”下使用如下命令来连接指定的数据库,比如我使用scott登录,现在使用conn命令连接:

conn orcl/orcl as sysdba

这时,切换为用户sys到数据库orcl的一个连接。

 

 

 

2、保存SQL脚本

使用save命令,可以将当前执行的命令保存到本地磁盘的某个文件中,例如查询scott.emp表,将查询命令保存到scott.emp.sql脚本文件中:

SQL> select
2 *
3 from
4 scott.emp
5 ;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

14 rows selected.

SQL> save c:/scott.emp.sql
Created file c:/scott.emp.sql

这时,可以打开c:/scott.emp.sql,看到键入的查询命令:

select
*
from
scott.emp

/

3、执行保存的sql脚本文件

有两种方式。

假设现在存在c:/scott.emp.sql脚本文件。

第一种通过get命令将sql脚本文件内容读入到缓冲区:

SQL> get c:/scott.emp.sql
1* select * from scott.emp
SQL> r
1* select * from scott.emp

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

14 rows selected.

SQL>

上面,get只是将sql脚本文件的内容调入到缓冲区,并没有执行,需要执行run命令(简写为r)才能真正执行sql脚本的命令行。

第二种通过start命令直接执行脚本:

SQL> start c:/scott.emp.sql

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7369 SMITH      CLERK           7902 17-12月-80            800                    20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20
      7839 KING       PRESIDENT            17-11月-81           5000                    10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20
      7900 JAMES      CLERK           7698 03-12月-81            950                    30
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10

14 rows selected.

SQL>

上面,直接就执行了sql脚本文件中的命令行。

3、保存屏幕中信息

可以使用spool命令来选择保存屏幕中出现的信息。

首先需要通过spool命令来指定输出信息到目的文件的名称,然后就可以在屏幕上执行sql命令,全部都会自动保存到指定的目的文件,直到执行了spool off命令,停止保存信息:

SQL> spool c:/spool.txt
SQL> show user;
USER is "SCOTT"
SQL> desc scott.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)

SQL> get c:/rowid.sql
1 select
2 rowid,
3 dbms_rowid.rowid_object(rowid) obj_id,
4 dbms_rowid.rowid_relative_fno(rowid) df#,
5 dbms_rowid.rowid_block_number(rowid) blknum,
6 dbms_rowid.rowid_row_number(rowid) rowno
7* from scott.emp
SQL> select * from scott.emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO                                                                     
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------                                                                     
      7369 SMITH      CLERK           7902 17-12月-80            800                    20                                                                     
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30                                                                     
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30                                                                     
      7566 JONES      MANAGER         7839 02-4月 -81           2975                    20                                                                     
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30                                                                     
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30                                                                     
      7782 CLARK      MANAGER         7839 09-6月 -81           2450                    10                                                                     
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20                                                                     
      7839 KING       PRESIDENT            17-11月-81           5000                    10                                                                     
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30                                                                     
      7876 ADAMS      CLERK           7788 23-5月 -87           1100                    20                                                                     
      7900 JAMES      CLERK           7698 03-12月-81            950                    30                                                                     
      7902 FORD       ANALYST         7566 03-12月-81           3000                    20                                                                     
      7934 MILLER     CLERK           7782 23-1月 -82           1300                    10                                                                     

14 rows selected.

SQL> spool off

可以查看文件c:/spool.txt,其中的所有信息都是上面输入的。

4、交互命令

可以使用&指定交互输入变量,如下所示:

SQL> select * from scott.emp where empno='&编号';
Enter value for 编号: 7788
old   1: select * from scott.emp where empno='&编号'
new   1: select * from scott.emp where empno='7788'

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000                    20

SQL>

当然,也可以通过设置多个交互变量,如下所示:

SQL> select * from scott.emp where sal>'&sal' and deptno='&deptno';
Enter value for sal: 800
Enter value for deptno: 30
old   1: select * from scott.emp where sal>'&sal' and deptno='&deptno'
new   1: select * from scott.emp where sal>'800' and deptno='30'

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300         30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500         30
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400         30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850                    30
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0         30
      7900 JAMES      CLERK           7698 03-12月-81            950                    30

6 rows selected.

SQL>

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值