sqlplus常用命令使用(转载)

Oracle学习:sqlplus常用命令使用(转载)
show和set命令是两条用于维护SQL*Plus系统变量的命令

     SQL> show all --查看所有68个系统变量值

     SQL> show user --显示当前连接用户

     SQL> show error                --显示错误

     SQL> set heading off --禁止输出列标题,默认值为ON

     SQL> set feedback off --禁止显示最后一行的计数反馈信息,默认值为"对6个或更多的记录,回送ON"

     SQL> set timing on --默认为OFF,设置查询耗时,可用来估计SQL语句的执行时间,测试性能

     SQL> set sqlprompt "SQL> " --设置默认提示符,默认值就是"SQL> "

     SQL> set linesize 1000 --设置屏幕显示行宽,默认100

     SQL> set autocommit ON --设置是否自动提交,默认为OFF

     SQL> set pause on --默认为OFF,设置暂停,会使屏幕显示停止,等待按下ENTER键,再显示下一页

     SQL> set arraysize 1 --默认为15

     SQL> set long 1000 --默认为80

     说明:
     long值默认为80,设置1000是为了显示更多的内容,因为很多数据字典视图中用到了long数据类型,如:

SQL> desc user_views
列名                          可空值否   类型
------------------------------- -------- ----
VIEW_NAME                       NOT NULL VARCHAR2(30)
TEXT_LENGTH                              NUMBER
TEXT                                     LONG

 

命令列表:
假设当前执行命令为:select * from tab;

(a)ppend     添加文本到缓冲区当前行尾    a  order by tname 结果:select * from tab order by tname;
                                      (注:a后面跟2个空格)
(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname     结果:select tname from tab;
(c)hange/text  从当前行删除文本        c/tab       结果:select tname from ;
del       删除当前行
del n      删除第n行
(i)nput 文本   在当前行之后添加一行
(l)ist      显示缓冲区中所有行
(l)ist n     显示缓冲区中第 n 行
(l)ist m n    显示缓冲区中 m 到 n 行
run       执行当前缓冲区的命令
/        执行当前缓冲区的命令
r        执行当前缓冲区的命令
@文件名     运行调入内存的sql文件,如:

SQL> edit s<回车>
如果当前目录下不存在s.sql文件,则系统自动生成s.sql文件,
在其中输入“select * from tab;”,存盘退出。

SQL> @s<回车>
系统会自动查询当前用户下的所有表、视图、同义词。

@@文件名     在.sql文件中调用令一个.sql文件时使用

save 文件名   将缓冲区的命令以文件方式存盘,缺省文件扩展名为.sql
get 文件名    调入存盘的sql文件
start 文件名   运行调入内存的sql文件

spool 文件名   把这之后的各种操作及执行结果“假脱机”即存盘到磁盘文件上,默认文件扩展名为.lst
spool      显示当前的“假脱机”状态
spool off    停止输出

例:
SQL> spool a
SQL> spool
正假脱机到 A.LST
SQL> spool off
SQL> spool
当前无假脱机


exit       退出SQL*PLUS
desc 表名    显示表的结构
show user    显示当前连接用户
show error    显示错误
show all     显示所有68个系统变量值
edit       打开默认编辑器,Windows系统中默认是notepad.exe,把缓冲区中最后一条SQL语句调入afiedt.buf文件中进行编辑
edit 文件名   把当前目录中指定的.sql文件调入编辑器进行编辑

clear screen   清空当前屏幕显示

-----------------------------------------------------------------------------------------------

附:上机练习

内容:1.创建一数据库,启动实例并装配它。
   2.通过访问数据字典了解数据库的结构及实例结构。

步骤:
  一.创建数据库/oracle/目录,ls查看其结构。
           -------- clt1  ---- oradata  -- ora
           |              |--- testdata -- test
           |
      |------- ctl2  ----- oradata  -- ora
      |              |---  testdata -- test
      |
      |------- ctl3    …  … 
以上目录为各数据库中数据文件存放目录。
效仿以上的目录结构,在ctl1、ctl2、clt3目录下再建一个tstdata目录,并在各tstdata
目录下建立一个tst目录

cd /oracle/app/oracle/admin
此目录为Oracle各数据库的管理目录。
cd test
进入test目录了解Oracle目录组织结构(OFA结构),结合ls命令。
       ora  ------- bdump  后台存储文件目录(BACKGROUP_DUMP_DEST的值)
       |------ udump  用户转储文件目录(USER_DUMP_DEST的值)
       |------ cdump  核心文件
       |------ pfile  init.ora和任何其它数据库初始化参数
       |------ create 用于创建初始化数据和数据库对象的脚本
       |------ SQL    数据库管理SQL文件
      
进入create目录阅读crdbtest.sql及crdb2test.sql这两个数据库ORA的创建脚本,进而知
道创建数据库的过程命令。

 效防test下的目录结构,创建一名为tst的目录,拷贝test/pfile及test/create下的所有
文件到对应目录。
          Cd /oracle/app/oracle/admin
          Mkdir tst
          Cd tst
          Mkdir bdump
          Mkdir udump
          Mkdir cdump
          Mkdir pfile
          Mkdir create
          Mkdir sql
          Cp ../test/pfile/* pfile
          Cp ../test/create/* create
          进入tst/pfile目录,启动vi编辑器编辑configora.ora文件:
       将所有与原来test目录有关的目录全以tst替换test.
         如:原来的control_files参数中
                把/oracle/ctl1/oradata/test/control01.ctl,改为
                  /oracle/ctl1/oradata/tst/control01.ctl,
            需要改的地方还有:core_dump_dest
                              user_dump_dest 
                              db_name 参数行
                  
        把文件configtest.ora改名为configtst.ora
              inittest.ora   改名为inittst.ora
              inittest_0.ora 改名为inittst_0.ora
        编辑inittst.ora及inittst_0.ora文件,把它们中的前面的ifile指
      定文件原来为:
         ifile = /oracle/app/oracle/admin/test/pfile/configtest.ora   
       改为:
         ifile  = /oracle/app/oracle/admin/tst/pfile/configtst.ora    spool /oracle/app/oracle/admin/test/create/crdbtest.lst
         startup nomount pfile= …
         create database "test" 改为create database “tst”
       将create database语句的用的character set改为ZHS16CGB231280,
       原先为US7ASCII。ZHS16CGB231280为Oracle中支持中文国标的字符集名。
      
        编辑crdb2tst.sql文件,将其做类似以上的修改(将创建命令中所用到的有关原来
test目录改为tst目录,并可以适当调节你所要建立数据库的相关数据文件大小。

修改ORACLE_SID环境变量值为新的SID名,此SID告诉oracle欲启动的实例名。
     ORACLE_SID=tst;exprot ORACLE_SID

  进入tst/create目录,启动服务器管理器(svrmgrl)执行crdbtst.sql脚本:
cd /oracle/app/oracle/admin/tst/create
     svrmgrl  @crdbtst.sql
    执行后在svrmgrl状态下再执行crdb2tst.sql脚本。
    Svrmgrl> start crdb2tst.sql
    创建过程需要数分钟,请耐心等待 … 

        等上以脚本执行完毕,新的数据库已建立。此时,可以退出svrmgrl。

        拷贝tst/pfile/inittst.ora文件至$ORACLE_HOME/dbs目录,省得每次启动svrmg
rl还要指定init.ora文件位置。在启动svrmgrl时,若没有特别指定init.ora的文件,ORA
CLE将在$ORACLE_HOME/dbs找init<SID>.ora作为其启动的初始化参数文件,SID为ORACLE_S
ID环境变量值。

再次启动svrmgrl(注意:ORACLE_SID值必须已改为新的SID值。)
  svrmgrl
svrmgrl>connect internal;
svrmgrl>startup            (启动数据库)
svrmgrl>start $ORACLE_HOME/dbs/catproc.sql 
  
catproc.sql脚本安装Procedural Option所必需的脚本或PL/SQL对象及其支持的数据库结
构。

至此,我们已成功创建了一个新的数据库tst,并且我们也用实例tst来装配启动它。
为了能够让用户从远程访问此数据库,我们还必须配置Oracle的TNS(Transparent Netwo
rk Service),配置这一服务只要改变一下其配置文件listener.ora即可,最简单的办法
是拷贝一个副本备份,然后直接编辑它,把原来的实例名更换为新的实例名即可。更名后
,重新启动tnslistener进程即生效。
$lsnrctl stop     (在操作系统状态下执行)
$lsnrctl start


更改SYS及SYSTEM用户的默让密码。
  grant connect to sys(或system) identified by <new_password>
 或 alter user sys identified by <new_password> 
    以上命令可以在服务器管理器状态下执行,也可以在Sqlplus下执行。
 


二、考察数据库及实例结构
 启动sqlplus用SYS或SYSTEM用户连接。
或启动svrmgrl,connect internal

1. 查询实例启动时间。
     select to_char(a.value,’J’)+b.value/86400,
            ’HH24:MI:SS DD-MON-RR’) start_time 
            from v$instance a,v$instance b
            where a.key=’STARTUP TIME –JULIAN’ AND
                   b.key=’STARTUP TIME –SECONDS’;
         
观看实例存储器分配信息
SELECT name,bytes from v$sgastat
      Where name in (‘free memory’,’fixed_sga’,’db_block_buffers’,
                     ‘log_buffer’,’dictionary cache’,’library cache’,
                     ‘sql area’);

查看进程实例进程
select spid,name from v$process, v$bgprocess where addr =paddr; 

查看数据库用户
select username from dba_users;

查看活动的控制文件
select * from v$controlfile

查看回滚段信息
select a.segment_name,b.bytes,b.extents,a.tablespace_name, 
       c.shrinks,c.extends,c.hwmsize
  from dba_rollback_segs a,dba_segments b,v$rollstat c
  where a.segment_id=c.usn and a.segment_name=b.segment_name;
       
查看重做日志信息
select   member,bytes,members,a.status 
   from  v$log, V$logfile b
   where a.group# = b.group#
   order by member;

查看数据库链接
select spid,mame from v$sysstatprocess,v$sysstatbgprocess
     where paddr(+)=addr;

查看多线程服务器进程
   select * from v$dispatcher;
   select * from v$shared_server;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值