sqlplus编辑命令行用法

 sqlplus编辑命令行用法

set linedize 150  //每行显示的字符
  set time on    //在提示符前显示系统时间
  SQL> set time on
  12:25:08 SQL>
  
  set serveroutput on/off  //输出显示
  set long 200   //每字段显示的字符长度,如某列的值显示不完,调次值
  col column_name format a10 //显示列的宽度
  
  set linedize 150  //每行显示的字符
  set time on    //在提示符前显示系统时间
  SQL> set time on
  12:25:08 SQL>
  
  set serveroutput on/off  //输出显示
  set long 200   //每字段显示的字符长度,如某列的值显示不完,调次值
  col column_name format a10 //显示列的宽度
  col ename heading 雇员  //别名显示
  
  spool d:/temp/sqlout.txt //输出为文档
  spool off
  
  SQL> alter session set NLS_LANGUAGE='AMERICAN'; 改变session的语言显示
  SQL> alter session set NLS_LANGUAGE='SIMPLIFIED CHINESE';
  
  SQL> set timi on //显示提示SQL语句执行所花的时间 
关键词: oracle  sqlplus 命令行用法

oracle数据库有很多查询工具,例如大名鼎鼎PLSQL,习惯了图形界面之后,再来面对字符界面的sqlplus真是一种折磨,但不知那位仙人说过“存在就是合理”。
有时候恰恰需要在字符界面环境下工作,例如客户现场,Unix、Linux、AIX操作系统下等等,本文讨论的就是在sqlplus中的一些简单的编辑命令。

1、登陆数据库
sqlplus 用户名/密码[@实例名]
例如:sqlplus 
[email=test/test@orac]test/test@orac[/email]

注:1、实例名就是你的oracle_sid宏的定义,注意密码跟实例之间没有空格


2、断开数据库连接
sql 

3、更改数据库连接用户
sql system/oracle@orac[/email]

4、设置行大小,页大小
sql 
sql 

5、执行脚本,“/” “r” “;” 皆可
sql 
sql 

6、列出上一脚本,l
SQL> l
  1  select * from order
  2* where num='8888'
1,2代表行号,带*号代表当前行

7、切换行号,直接输入数字行号即可
SQL> 1
  1* select * from order

8、删除行,del n,n代表行号数字
SQL> l
  1  select * from order
  2* where num='8888'
SQL> del 2
SQL> l
  1* select * from order

9、增加行,i活动行后插入新行粘贴,a当前行后粘贴
SQL> l
  1* select * from order
SQL> i where num='1021'
SQL> l
  1  select * from order
  2* where num='1021'
SQL> a  tableb
  1* select * from order tableb

*注意a后面要空至少两个格,否则可能会出现operatortableb效果

10、修改内容 c/原内容/新内容
SQL> c /tableb/tablea
  1* select * from order tablea

[b]总结下:[/b]
[b]l -- [/b][b]列[/b][b]sql[/b]
[b]n -- [/b][b]切换活动行[/b][b](n[/b][b]代表行数字[/b][b])[/b]
[b]a -- [/b][b]活动行后增加[/b][b](append)[/b]
[b]i -- [/b][b]活动行后插入新行增加[/b][b](imput)[/b]
[b]c -- [/b][b]替换[/b][b](change)[/b]
[b]del n -- [/b][b]删除行[/b][b]n[/b]
[b]/ -- [/b][b]执行[/b][b]sql[/b]

11、设置默认编辑器

上面说了sqlplus里一些基本语法,当然如果你习惯用vi的话,可以把默认编辑设置成vi,如下:
SQL> set _EDITOR=vi 
SQL> ed 
键入ed,则sqlplus自动切换到vi,在vi中修改sql,存盘,会自动重新读入到sqlplus的缓冲区(类似sybase里isql下直接键入vi)。

你还可以把编辑器设置存到配置文件,每次自动使用该配置;
修改$ORACLE_HOME/sqlplus/admin/glogin.sql配置文件,增加define _editor=vi即可,sqlplus启动的时候会读取glogin.sql脚本。

在Linux的sqlplus中,如果使用edit对当前脚本进行编辑,则调用默认编辑器ed,如果想使用vi作为默认编辑器,则可以编辑文件$ORACLE_HOME/sqlplus/admin/glogin.sql,添加如下行

DEFINE _EDITOR = vi
重新启动sqlplus后,运行edit命令时将会调用vi作为编辑器
在sqlplus启动时,会首先运行$ORACLE_HOME/sqlplus/admin/glogin.sql,因此我们也可以在这个文件中设置别的变量

首先,我们先来介绍一下SCN(系统改变号),它的英文全拼为:System Change Number ,它是数据库中非常重要的一个数据结构。 
  SCN提供了Oracle的内部时钟机制,可被看作逻辑时钟,这对于恢复操作是至关重要的 .
  注释:Oracle 仅根据 SCN 执行恢复。 
  它定义了数据库在某个确切时刻提交的版本。在事物提交时,它被赋予一个唯一的标示事物的SCN 。一些人认为 SCN 是指, System Commit Number ,而通常 SCN 在提交时才变化,所以很多情况下, 
  这两个名词经常被交替使用。 
  究竟是哪个词其实对我们来说并不是最重要的,重要的是我们知道 SCN 是 Oracle 内部的时钟机制, Oracle 通过 SCN 来维护数据库的一致性,并通过SCN 实施 Oracle 至关重要的恢复机制。 
  下面我们来介绍一下获得当前SCN的几种有效方式: 
  一.在Oracle9i中,可以使用dbms_flashback.get_system_change_number来获得 
  示例:SQL> select dbms_flashback.get_system_change_number from dual;
GET_SYSTEM_CHANGE_NUMBER
2982184 
  二.在Oracle9i之前你可以通过查询x$ktuxe来获得 
X$KTUXE---[K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntry (table) 
SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;
MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)
2980613

你可能感兴趣的:(oracle)