1. 执行一个SQL脚本文件
SQL>@
2. 对当前的输入进行编辑
SQL>edit
3. 重新运行上一次运行的sql语句
SQL>/
4. 将显示的内容输出到指定文件
SQL>spool file_name
5. 关闭spool输出
SQL>spool off
6.显示一个表的结构
SQL>desc table_name
7. COL命令:
1). 改变缺省的列标题
SQL>col col_name heading column_heading
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
SQL>col ename heading ‘Employee|Name’
3). 改变列的显示长度:
SQL>col col_name format a40
4). 设置列标题的对齐方式
SQL>col col_name justify left|center|right
5). 不让一个列显示在屏幕上
SQL>col col_name noprint|print
6). 格式化NUMBER类型列的显示:
SQL>col col_name format $99,990
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
SQL>col comm null text
8). 设置一个列的回绕方式
SQL>col col_name wrapped | word_wrapped | truncated
9). 显示列的当前的显示属性值
SQL>column col_name
10). 将所有列的显示属性设为缺省值
SQL>clear columns
8. 屏蔽掉一个列中显示的相同的值
SQL> break on col_name
9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
SQL>break on break_column skip n
10. 显示对BREAK的设置
SQL>break
11. 删除8、9的设置
SQL>clear breaks
12. Set 命令:
1).设置当前session是否对修改的数据进行自动提交
SQL>set autocommit {on | off | immediate | n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL>set echo {on | off}
3).是否显示当前sql语句查询或修改的行数
SQL>set feedback {6|n|on|off}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1,则不管查询到多少行都返回。当为off时,一律不显示查询的行数。
4).是否显示列标题
SQL>set heading {on | off}
当set heading off时,在每页的上面不显示列标题,而是以空白行代替。
5).设置一行可以容纳的字符数
SQL>set linesize {80 | n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
6).设置页与页之间的分隔
SQL>set newpage {1 | n | none}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n 个空行。
当set newpage none时,会在页和页之间没有任何间隔。
7).显示时,用text值代替NULL值
SQL>set null text
8).设置一页有多少行数
SQL>set pagesize {24 | n}
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL>set serveroutput {on | off}
10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL>set wrap {on | off}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL>set termout {on | off}
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
12).将SPOOL输出中每行后面多余的空格去掉
SQL>set trimspool {on | off}
13)显示每个sql语句花费的执行时间
SQL>set timing {on | off}
14). 遇到空行时不认为语句已经结束,从后续行接着读入。
SQL>set sqlblanklines on
Sql*plus中,不允许sql语句中间有空行,这在从其它地方拷贝脚本到sql*plus中执行时很麻烦,比如下面的脚本:select deptno,empno,ename
From emp
Where empno=’7788’;
如果拷贝到sql*plus中执行,就会出现错误,这个命令可以解决该问题。
15).设置DBMS_OUTPUT的输出
SQL>set serveroutput on buffer 20000
用dbms_output.put_line(‘strin_content’);可以在存储过程中输出信息,对存储过程进行调试,如果想让dbms_output.put_line(‘ abc’);的话输出显示为:SQL> abc,而不是SQL>abc,则在set serveroutput on 后面加format wrapped 参数。
16). 输出的数据为html格式
SQL>set markup html
14.修改sql buffer中的当前行中,第一个出现的字符串
SQL>change/old_value/new_value
15.编辑sql buffer中的sql语句
SQL>edit
16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
SQL>list n
17.在sql buffer的当前行下面加一行或多行
SQL>imput
18.将指定的文本加到sql buffer的当前行后面
SQL>append, add_text
19.将sql buffer中的sql语句保存到一个文件中
SQL>save file_name
20.将一个文件中的sql语句导入到sql buffer中
SQL>get file_name
21.再次执行刚才已经执行的sql语句
SQL>run or /
22.执行一个存储过程
SQL>execute procedure_name
23.在sql*plus中连接到指定的数据库
SQL>connect user_name/passwd@db_sid
24.设置每个报表的顶部标题
SQL>ttitle
25.设置每个报表的尾部标题
SQL>btitle
26.写一个注释
SQL>remark [text]
27.将指定的信息或一个空行输出到屏幕上
SQL>promt [text]
28.将执行的过程暂停,等待用户响应后继续执行
SQL>pause [text]
SQL>pause Adjust paper and press return to continue.
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
SQL>copy from scott/tiger@hq to join/chrome@west
{append | create | insert | replace} destination_table
[(column,column,column,…)] using query
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
SQL>host hostname
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
SQL>!
$hostname
$exit
SQl>
32.显示sql*plus命令的帮助
SQL>help
33.显示sql*plus系统变量的值或sql*plus环境变量的值
1) . 显示当前环境变量的值:
SQL>show all
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
SQL>show error
3) . 显示初始化参数的值:
SQL>parameters [parameter_name]
4) . 显示数据库的版本:
SQL>show release
5) . 显示SGA的大小
SQL>show sga
6). 显示当前的用户名
SQL>show user
34.查询一个用户下的对象
SQL>select * from tab;
SQL>select * from user_objects;
35.查询一个用户下的所有的表
SQL>select * from user_tables;
36.查询一个用户下的所有的索引
SQL>select * from user_indexes;
37. 定义一个用户变量
方法有两个:
a. DEFINE [variable] | [variable=text]
定义一个用户变量并且可以分配给它一个CHAR值。
SQL>define pos=manager //定义pos=’manager’
SQL>define deptno=20 //定义deptno=’20’
b. COLUMN [{column | expr} NEW_VALUE variable [NOPRINT | PRINT]
OLD_VALUE variable [NOPRINT | PRINT]
例:SQL>column col_name new_value var_name noprint
SQL>select col_name from table_name where…..
//将下面查询出的col_name列的值赋给var_name变量,但不显示出来。
38. 定义一个绑定变量
SQL>VARIABLE [variable [NUMBER | CHAR | CHAR(n) | NCHAR | NCHAR(n) | VARCHAR2(n) | NVARCHAR2(n) | CLOB | NCLOB | REFCURSOR]]
定义一个绑定变量,该变量可以在pl/sql中引用
绑定变量: :variable_name
变量: &variable_name or &&variable_name
在sql*plus中,可以定义同名的绑定变量与用户变量,但是引用的方法不同。
39. &与&&的区别
&用来创建一个临时变量,每当遇到这个临时变量时,都会提示你输入一个值。
&&用来创建一个持久变量,就像用define命令或带new_value字句的column命令创建的持久变量一样。当用&&命令引用这个变量时,不会每次遇到该变量就提示用户键入值,而只是在第一次遇到时提示一次。
如:将下面三行语句存为一个脚本文件,运行该脚本文件,会提示三次,让输入deptnoval的值:
Select count(*) from emp where deptno = &deptnoval;
Select count(*) from emp where deptno = &deptnoval;
Select count(*) from emp where deptno = &deptnoval;
将下面三行语句存为一个脚本文件,运行该脚本文件夹,则只会提示一次,让输入deptnoval的值:
Select count(*) from emp where deptno = &&deptnoval;
Select count(*) from emp where deptno = &&deptnoval;
Select count(*) from emp where deptno = &&deptnoval;
40.在输入sql语句的过程中临时先运行一个sql*plus命令
比如说,你想查工资大于4000的员工的信息,输入了下面的语句:
SQL>select deptno,empno,ename
2 from emp
3 where
这时,你发现你想不起来工资的列名是什么了。这种情况下,只要在下一行以#开头,就可以执行一条sql*plus命令,执行完后,刚才的语句可以继续输入
SQL>select deptno,empno,ename
2 from emp
3 where
4#desc emp
Name NULL? Type
Deptno not null number(3)
Empno not null number(4)
Ename varchar(10)
Sal number(7,2)
4 sal>4000;
Deptno empno ename
10 7893 KING
41. SQLPlus中的快速复制和粘贴技巧
1) 鼠标移到想要复制内容的开始
2) 用右手食指按下鼠标左键
3) 向想要复制内容的另一角拖动鼠标,与Word中选取内容的方法一样
4) 内容选取完毕后(所选内容全部反显),鼠标左键按住不动,用右手中指按鼠标右键
5) 这时,所选内容会自动复制到SQL*Plus环境的最后一行
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22012035/viewspace-694598/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/22012035/viewspace-694598/