> 数据库 > Oracle >

Oracle笔记(二) SQLPlus命令

对于Oracle数据库操作主要使用的是命令行方式,而所有的命令都使用sqlplus完成,对于sqlplus有两种形式。

  • 一种是dos风格的sqlplus:sqlplus.exe;
  • 另一种是windows风格的sqlplus:sqlplusw.exe;

在Oracle 10g之中主要使用的是sqlplusw命令,因为其可以进行一些显示数据的调整。

    

此时会找到默认的已经可以使用的数据库实例。

范例:输入查询指令

SELECT * FROM emp;

此时的数据已经可以正常的显示,但是依然会存在数据折行的问题,因为这个是默认的每行的数据大小,而现在可以通过两个命令进行调整:

  • 设置每行显示的记录长度:SET LINESIZE 300;
  • 设置每页显示的记录长度:SET PAGESIZE 30;

以后这两个命令统一被称为格式化命令,但是这些格式化命令在sqlplus下的设置并不是很明显。

但是sqlplusw虽然显示上方便一些,可是对于命令的编辑上却不是很方便,如正常的操作,命令写错了,则肯定使用方向键移到错误的位置上进行修改,但是在sqlplusw之中,方向键只能控制屏幕的移动,所以这个命令根本就不适合于编辑,所以在sqlplusw之中提供了ed和@指令,可以进行记事本的调用和执行;

  • 使用ed,调用记事本程序:ed a;

      此时会提示用户说,现在找不到“a.sql”的文件,询问是否创建,选择“是”,但是使用ed打开记事本之后 ,Oracle中的sqlplusw窗口会进入到阻塞状态,无法使用。

  • 使用@执行程序:@a;

      但是在windows之中,由于提供了许多方便的编辑软件,所以一般会在外部编辑程序,例如,现在在D盘上建立一个demo.txt的文件,里面保存程序代码。

      这个时候要读取在硬盘上的文件,则必须写上完整的路径:@D:\demo.txt,而且如果现在这个文件的后缀是“*.sql”的话,则不用输入文件后缀(demo.sql),输入:@d:\demo,或者更省事直接输入:@d:demo。

在一个数据库之中,会有许多的用户(现在已知的是四个用户),这每一个用户下都会有多张自己的数据表,所以要想查看所有的数据表,则可以使用如下的命令:

SELECT * FROM tab;

而且由于用户众多,所以如果要想知道当前的登录用户,则可以使用:SHOW USER; 命令完成。

而且在sqlplusw之中也可以直接进行用户的登录切换,使用如下的语法完成:

CONN 用户名/密码 [AS SYSDBA]

使用sys用户登录:CONN sys/change_on_install AS SYSDBA;

但是,一旦使用了sys连接之后,则无法直接查询emp表数据。

对于每一张表,都有其属于的用户,所以一张表的完整名称是“用户名.表名称”或者说是“模式名.表名称”,所以不同的用户要想访问其他用户的表,则应该加上用户名,即现在的访问名称:

SELECT * FROM scott.emp;

一旦使用了超级管理员登录的话,可以通过命令手工的控制数据库实例的打开和关闭;

  • 关闭数据库实例:SHUTDOWN IMMEDIATE;
    • 一旦关闭之后用户无法直接连接sqlplusw命令,此时可以先使用“/nolog”登录,之后使用管理员登录;
复制代码
SQL> conn sys/sys as sysdba;
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> 
复制代码

  •  启动数据库实例:STARTUP;

另外,sqlplusw命令窗口也可以调用本机的操作命令,使用“host”作为前缀。

HOST COPY d:\demo.sql d:\hello.txt

以上命令必须掌握,以后肯定会使用到。




(责任编辑:IT)