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
总结下:
l -- 列 sql
n -- 切换活动行 (n 代表行数字 )
a -- 活动行后增加 (append)
i -- 活动行后插入新行增加 (imput)
c -- 替换 (change)
del n -- 删除行 n
/ -- 执行 sql
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
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
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,2代表行号,带*号代表当前行
7、切换行号,直接输入数字行号即可
SQL> 1
8、删除行,del n,n代表行号数字
SQL> l
SQL> del 2
SQL> l
9、增加行,i活动行后插入新行粘贴,a当前行后粘贴
SQL> l
SQL> i where num='1021'
SQL> l
SQL> a
*注意a后面要空至少两个格,否则可能会出现operatortableb效果
10、修改内容 c\原内容\新内容
SQL> c \tableb\tablea
总结下:
l -- 列 sql
n -- 切换活动行 (n 代表行数字 )
a -- 活动行后增加 (append)
i -- 活动行后插入新行增加 (imput)
c -- 替换 (change)
del n -- 删除行 n
/ -- 执行 sql
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