很好用的SQLPLUS命令汇总【转】
文章所属标签: 我的技术专题
下面介绍一些常用的sql*plus命令:
1. 执行一个SQL脚本文件
SQL>start file_name
SQL>@ file_name
我们可以将多条sql语句保存在一个文本文件中,这样当要执行这个文件中的所有的sql语句时,用上面的任一命令即可,这类似于dos中的批处理。
2. 对当前的输入进行编辑
SQL>edit
3. 重新运行上一次运行的sql语句
SQL>/
4. 将显示的内容输出到指定文件
SQL> SPOOL file_name
在屏幕上的所有内容都包含在该文件中,包括你输入的sql语句。
5. 关闭spool输出
SQL> SPOOL OFF
只有关闭spool输出,才会在输出文件中看到输出的内容。
6.显示一个表的结构
SQL> desc table_name
7. COL命令:
主要格式化列的显示形式。
该命令有许多选项,具体如下:
COL[UMN] [{ column|expr} [ option ...]]
Option选项可以是如下的子句:
ALI[AS] alias
CLE[AR]
FOLD_A[FTER]
FOLD_B[EFORE]
FOR[MAT] format
HEA[DING] text
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
LIKE { expr|alias}
NEWL[INE]
NEW_V[ALUE] variable
NOPRI[NT]|PRI[NT]
NUL[L] text
OLD_V[ALUE] variable
ON|OFF
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
1). 改变缺省的列标题
COLUMN column_name HEADING column_heading
For example:
Sql>select * from dept;
DEPTNO DNAME LOC
---------- ---------------------------- ---------
10 ACCOUNTING NEW YORK
sql>col LOC heading location
sql>select * from dept;
DEPTNO DNAME location
--------- ---------------------------- -----------
10 ACCOUNTING NEW YORK
2). 将列名ENAME改为新列名EMPLOYEE NAME并将新列名放在两行上:
Sql>select * from emp
Department name Salary
---------- ---------- ----------
10 aaa 11
SQL> COLUMN ENAME HEADING ’Employee|Name’
Sql>select * from emp
Employee
Department name Salary
---------- ---------- ----------
10 aaa 11
note: the col heading turn into two lines from one line.
3). 改变列的显示长度:
FOR[MAT] format
Sql>select empno,ename,job from emp;
EMPNO ENAME JOB
---------- ---------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
Sql> col ename format a40
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
4). 设置列标题的对齐方式
JUS[TIFY] {L[EFT]|C[ENTER]|C[ENTRE]|R[IGHT]}
SQL> col ename justify center
SQL> /
EMPNO ENAME JOB
---------- ---------------------------------------- ---------
7369 SMITH CLERK
7499 ALLEN SALESMAN
7521 WARD SALESMAN
对于NUMBER型的列,列标题缺省在右边,其它类型的列标题缺省在左边
5). 不让一个列显示在屏幕上
NOPRI[NT]|PRI[NT]
SQL> col job noprint
SQL> /
EMPNO ENAME
---------- ----------------------------------------
7369 SMITH
7499 ALLEN
7521 WARD
6). 格式化NUMBER类型列的显示:
SQL> COLUMN SAL FORMAT $99,990
SQL> /
Employee
Department Name Salary Commission
---------- ---------- --------- ----------
30 ALLEN $1,600 300
7). 显示列值时,如果列值为NULL值,用text值代替NULL值
COMM NUL[L] text
SQL>COL COMM NUL[L] text
8). 设置一个列的回绕方式
WRA[PPED]|WOR[D_WRAPPED]|TRU[NCATED]
COL1
--------------------
HOW ARE YOU?
SQL>COL COL1 FORMAT A5
SQL>COL COL1 WRAPPED
COL1
-----
HOW A
RE YO
U?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW
ARE
YOU?
SQL> COL COL1 WORD_WRAPPED
COL1
-----
HOW A
9). 显示列的当前的显示属性值
SQL> COLUMN column_name
10). 将所有列的显示属性设为缺省值
SQL> CLEAR COLUMNS
8. 屏蔽掉一个列中显示的相同的值
BREAK ON break_column
SQL> BREAK ON DEPTNO
SQL> select DEPTNO, ENAME, SAL
FROM EMP
WHERE SAL < 2500
ORDER BY DEPTNO;
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
9. 在上面屏蔽掉一个列中显示的相同的值的显示中,每当列值变化时在值变化之前插入n个空行。
BREAK ON break_column SKIP n
SQL> BREAK ON DEPTNO SKIP 1
SQL> /
DEPTNO ENAME SAL
---------- ----------- ---------
10 CLARK 2450
MILLER 1300
20 SMITH 800
ADAMS 1100
10. 显示对BREAK的设置
SQL> BREAK
11. 删除6、7的设置
SQL> CLEAR BREAKS
12. Set 命令:
该命令包含许多子命令:
SET system_variable value
system_variable value 可以是如下的子句之一:
APPI[NFO]{ON|OFF|text}
ARRAY[SIZE] {15|n}
AUTO[COMMIT]{ON|OFF|IMM[EDIATE]|n}
AUTOP[RINT] {ON|OFF}
AUTORECOVERY [ON|OFF]
AUTOT[RACE] {ON|OFF|TRACE[ONLY]} [EXP[LAIN]] [STAT[ISTICS]]
BLO[CKTERMINATOR] {.|c}
CMDS[EP] {;|c|ON|OFF}
COLSEP {_|text}
COM[PATIBILITY]{V7|V8|NATIVE}
CON[CAT] {.|c|ON|OFF}
COPYC[OMMIT] {0|n}
COPYTYPECHECK {ON|OFF}
DEF[INE] {&|c|ON|OFF}
DESCRIBE [DEPTH {1|n|ALL}][LINENUM {ON|OFF}][INDENT {ON|OFF}]
ECHO {ON|OFF}
EDITF[ILE] file_name[.ext]
EMB[EDDED] {ON|OFF}
ESC[APE] {|c|ON|OFF}
FEED[BACK] {6|n|ON|OFF}
FLAGGER {OFF|ENTRY |INTERMED[IATE]|FULL}
FLU[SH] {ON|OFF}
HEA[DING] {ON|OFF}
HEADS[EP] {||c|ON|OFF}
INSTANCE [instance_path|LOCAL]
LIN[ESIZE] {80|n}
LOBOF[FSET] {n|1}
LOGSOURCE [pathname]
LONG {80|n}
LONGC[HUNKSIZE] {80|n}
MARK[UP] HTML [ON|OFF] [HEAD text] [BODY text] [ENTMAP {ON|OFF}] [SPOOL
{ON|OFF}] [PRE[FORMAT] {ON|OFF}]
NEWP[AGE] {1|n|NONE}
NULL text
NUMF[ORMAT] format
NUM[WIDTH] {10|n}
PAGES[IZE] {24|n}
PAU[SE] {ON|OFF|text}
RECSEP {WR[APPED]|EA[CH]|OFF}
RECSEPCHAR {_|c}
SERVEROUT[PUT] {ON|OFF} [SIZE n] [FOR[MAT] {WRA[PPED]|WOR[D_
WRAPPED]|TRU[NCATED]}]
SHIFT[INOUT] {VIS[IBLE]|INV[ISIBLE]}
SHOW[MODE] {ON|OFF}
SQLBL[ANKLINES] {ON|OFF}
SQLC[ASE] {MIX[ED]|LO[WER]|UP[PER]}
SQLCO[NTINUE] {> |text}
SQLN[UMBER] {ON|OFF}
SQLPRE[FIX] {#|c}
SQLP[ROMPT] {SQL>|text}
SQLT[ERMINATOR] {;|c|ON|OFF}
SUF[FIX] {SQL|text}
TAB {ON|OFF}
TERM[OUT] {ON|OFF}
TI[ME] {ON|OFF}
TIMI[NG] {ON|OFF}
TRIM[OUT] {ON|OFF}
TRIMS[POOL] {ON|OFF}
UND[ERLINE] {-|c|ON|OFF}
VER[IFY] {ON|OFF}
WRA[P] {ON|OFF}
1). 设置当前session是否对修改的数据进行自动提交
SQL>SET AUTO[COMMIT] {ON|OFF|IMM[EDIATE]| n}
2).在用start命令执行一个sql脚本时,是否显示脚本中正在执行的SQL语句
SQL> SET ECHO {ON|OFF}
3).是否显示当前sql语句查询或修改的行数
SQL> SET FEED[BACK] {6|n|ON|OFF}
默认只有结果大于6行时才显示结果的行数。如果set feedback 1 ,则不管查询到多少行都返回。当为off 时,一律不显示查询的行数
4).是否显示列标题
SQL> SET HEA[DING] {ON|OFF}
当set heading off 时,在每页的上面不显示列标题,而是以空白行代替
5).设置一行可以容纳的字符数
SQL> SET LIN[ESIZE] {80|n}
如果一行的输出内容大于设置的一行可容纳的字符数,则折行显示。
6).设置页与页之间的分隔
SQL> SET NEWP[AGE] {1|n|NONE}
当set newpage 0 时,会在每页的开头有一个小的黑方框。
当set newpage n 时,会在页和页之间隔着n个空行。
当set newpage none 时,会在页和页之间没有任何间隔。
7).显示时,用text值代替NULL值
SQL> SET NULL text
8).设置一页有多少行数
SQL> SET PAGES[IZE] {24|n}
如果设为0,则所有的输出内容为一页并且不显示列标题
9).是否显示用DBMS_OUTPUT.PUT_LINE包进行输出的信息。
SQL> SET SERVEROUT[PUT] {ON|OFF}
在编写存储过程时,我们有时会用dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上。
10).当SQL语句的长度大于LINESIZE时,是否在显示时截取SQL语句。
SQL> SET WRA[P] {ON|OFF}
当输出的行的长度大于设置的行的长度时(用set linesize n命令设置),当set wrap on时,输出行的多于的字符会另起一行显示,否则,会将输出行的多于字符切除,不予显示。
11).是否在屏幕上显示输出的内容,主要用与SPOOL结合使用。
SQL> SET TERM[OUT] {ON|OFF}
在用spool命令将一个大表中的内容输出到一个文件中时,将内容输出在屏幕上会耗费大量的时间,设置set termspool off后,则输出的内容只会保存在输出文件中,不会显示在屏幕上,极大的提高了spool的速度。
12).将SPOOL输出中每行后面多余的空格去掉
SQL> SET TRIMS[OUT] {ON|OFF}
13)显示每个sql语句花费的执行时间
set TIMING {ON|OFF}
14.修改sql buffer中的当前行中,第一个出现的字符串
C[HANGE] /old_value/new_value
SQL> l
1* select * from dept
SQL> c/dept/emp
1* select * from emp
15.编辑sql buffer中的sql语句
EDI[T]
16.显示sql buffer中的sql语句,list n显示sql buffer中的第n行,并使第n行成为当前行
L[IST] [n]
17.在sql buffer的当前行下面加一行或多行
I[NPUT]
18.将指定的文本加到sql buffer的当前行后面
A[PPEND]
SQL> select deptno,
2 dname
3 from dept;
DEPTNO DNAME
---------- --------------
10 ACCOUNTING
20 RESEARCH
30 SALES
40 OPERATIONS
SQL> L 2
2* dname
SQL> a ,loc
2* dname,loc
SQL> L
1 select deptno,
2 dname,loc
3* from dept
SQL> /
DEPTNO DNAME LOC
---------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
19.将sql buffer中的sql语句保存到一个文件中
SAVE file_name
20.将一个文件中的sql语句导入到sql buffer中
GET file_name
21.再次执行刚才已经执行的sql语句
RUN
or
/
22.执行一个存储过程
EXECUTE procedure_name
23.在sql*plus中连接到指定的数据库
CONNECT user_name/passwd@db_alias
24.设置每个报表的顶部标题
TTITLE
25.设置每个报表的尾部标题
BTITLE
26.写一个注释
REMARK [text]
27.将指定的信息或一个空行输出到屏幕上
PROMPT [text]
28.将执行的过程暂停,等待用户响应后继续执行
PAUSE [text]
Sql>PAUSE Adjust paper and press RETURN to continue.
29.将一个数据库中的一些数据拷贝到另外一个数据库(如将一个表的数据拷贝到另一个数据库)
COPY {FROM database | TO database | FROM database TO database}
{APPEND|CREATE|INSERT|REPLACE} destination_table
[(column, column, column, ...)] USING query
sql>COPY FROM SCOTT/TIGER@HQ TO JOHN/CHROME@WEST
create emp_temp
USING select * FROM EMP
30.不退出sql*plus,在sql*plus中执行一个操作系统命令:
HOST
Sql> host hostname
该命令在windows下可能被支持。
31.在sql*plus中,切换到操作系统命令提示符下,运行操作系统命令后,可以再次切换回sql*plus:
!
sql>!
$hostname
$exit
sql>
该命令在windows下不被支持。
32.显示sql*plus命令的帮助
HELP
如何安装帮助文件:
Sql>@?/sqlplus/admin/help/hlpbld.sql ?/sqlplus/admin/help/ ?/sqlplus/admin/help/helpus.sql
Sql>help index
33.显示sql*plus系统变量的值或sql*plus环境变量的值
Syntax
SHO[W] option
where option represents one of the following terms or clauses:
system_variable
ALL
BTI[TLE]
ERR[ORS] [{FUNCTION|PROCEDURE|PACKAGE|PACKAGE BODY|
TRIGGER|VIEW|TYPE|TYPE BODY} [schema.]name]
LNO
PARAMETERS [parameter_name]
PNO
REL[EASE]
REPF[OOTER]
REPH[EADER]
SGA
SPOO[L]
SQLCODE
TTI[TLE]
USER
1) . 显示当前环境变量的值:
Show all
2) . 显示当前在创建函数、存储过程、触发器、包等对象的错误信息
Show error
当创建一个函数、存储过程等出错时,变可以用该命令查看在那个地方出错及相应的出错信息,进行修改后再次进行编译。
3) . 显示初始化参数的值:
show PARAMETERS [parameter_name]
4) . 显示数据库的版本:
show REL[EASE]
5) . 显示SGA的大小
show SGA
6). 显示当前的用户名
show user
微软陈永正辞职信及上司回复(中英文对照)
ugmbbc发布于 2007-09-19 16:53:39| 540 次阅读 字体:大 小 打印预览
感谢发掘网的投递
我想同大家分享一下关于我本人未来计划的一项艰难决定。今天晚些时候,我将宣布从微软公司离任,转入一个全新的领域工作。想到即将告别这份不可思议的工作,离开四年来我有幸在微软遇到的诸位杰出的同事,我心情颇为沉重。
我们共同完成了很多人认为无法完成的工作。在短短的几年里,我们确定了推进微软中华区业务发展的清晰而稳固的战略框架。我们的销售增长了几乎一倍,大中华区的销售收入突破了10亿美元。过去的三年里,在中国大陆,我们将销售(含coverec OEMs)业绩提高了两倍,并为2008财年实现10亿美元的目标做好了准备。我们将未经授权的电脑使用率(CPU)降低了20多了百分点;新雇用了几百名员工;将业务运营扩展到了中国大陆、香港、台湾15个以上的城市。我们还加强了同客户和合作伙伴的关系,不仅在本地区乃至全球改变了人们看待微软的方式。
最重要的是,我们运用我们的技术帮助中国大陆、香港、台湾许许多多的人改善他们的生活和生计。一路走来。从你们每个人身上,我学到了很多;你们使我无法忘记我在微软经历。
诚然,变化总会伴随着一些不确定。但是,有一点我坚信不疑,那就是,公司有能力延续我们已经开始了的成功,我们已经制定了经过仔细斟酌的交接计划,并出世界最好的领导团队来完成。我对目前的管理团队及其战略充满信心,毕竟Big Rocks计划已经就为。毫无疑问,在不久的将来,微软大中华区谈论不再是10亿美元的突破,而是50亿美元新纪录的创造。
今天下午四点,我们将在现代汽车大厦召开全体员工大会介绍我的计划和详细的工作交接方案。最后,我想对微软大中华区的每一位员工表达我深深的谢意,感谢你们的辛勤工作,感谢你们为我们的成功所做的贡献。
陈永正
Tim Chen
英文版:
【发掘网讯】 I want to share with you some difficult news about my future plans. Later today, I will announce that I have resigned from Microsoft and will be taking a position in a different filed. It is not without a heavy heart that I contemplate leaving the incredible work and extraordinary people that I have been privileged to encounter during my four years at Microsoft.
Together, we have accomplished what some might have thought could not be done. In a few short years, we have defined a clear and stable strategic framework for Microsoft’s business in the Greater China region. We have nearly doubled sales and have broken through the $1 billion mark in revenue in GCR. In China itself, we have tripled our sales in the last three years. Including those of covered OEMs, and we are posed to hit $ 1 billion in FY08. we have reduced the UPC rate by more than 20%. We have added hundreds of new people and expanded our operations to more than 15 locations across the region. We have strengthened our customer and partner relationships and transformed the way people view Microsoft, not just locally but all around the globe as well.
Most importantly, we’ve been able to use our technology to help improve the lives and livelihood of millions of people throughout the Greater China region. I have learned from each of you along the way and you have made my experience at Microsoft one that I will never forget.
While change always comes with its share of unknowns, there is one thing that I have absolutely no question about, and that is this organization’s ability to continue the great work that we’ve begun. We have a well-thought our transltion plan in place and some of the finest leadership in the team and in our strategy with the Big Rocks plan in place. I have no doubt that in the very near future, Microsoft Greater China region will no longer be talking about breaking through the $1 billion but about the $5 billion mark. J
At 4 PM today, we will have an all-hands meeting in the Millennium Building to discuss my plans and the transition in more detail. In the meantime, I’d like to express my deep thanks to every one of you in the Microsoft Greater China region for your hard work and for your contribution to our continued success.
Tim Chen
微软大中华区回复:
我要感谢Tim为微软所作的贡献,并祝愿他在新的工作中一切顺利。在中国IT产业重要的发展时期,Tim同大中华区的高层管理团队一道为我们的业务制定了方向并领导了业务的发展。对微软大中华区来说,过去的四年的确是非凡的四年。我相信这仅仅是成功的开始,在未来的岁月里,我们将延续这种成功。
然而,变化从来都不是一件轻松的事。Tim对公司架构、大中华区的高层管理团队以及公司的市场前景充满信心,我同样充满信心。我们的交接计划完善,并已开始物色负责微软大中华区业务的新的首席执行官,预计将在2008年年初宣布新的任命。在此期间,我很高兴地宣布负责微软中国研发集团的全球资深副总裁张亚勤将即刻出任代理首席执行官,并直接向我汇报。亚勤仍将负责由1,500名员工组成的研发集团。
同时,我将任命Peter Cray临时负责管理市场,销售与服务业务,汇报给亚勤,同时也将跟我一道密切工作,作为代理COO,Peter Cray即日起将同大中华区的高层管理团队一道负责公司日常运营工作。我对他的领导才能充满信心,期待着与Peter和亚勤一道确保交接顺利,使大中华区的业务保持持续发展的势头。
未来充满着不可思议的机会。诸位正在为微软大中华区不断取得成功竭诚尽敬,我对各位的工作充满信心。在我对中国大陆、香港、台湾的工作访问中,有机会同你们当中的许多人一起工作,了解到你们所处的区域幅员辽阔、生机勃勃。我将致力于扩大微软在过去的五年中所作的投入,使大中华区不仅在业务上取得前所未有的成长,而且成为微软促进实现下一个10亿人获得社会和经济持续发展这一长期愿景的实证。
我们对大中华区的发展雄心勃勃。我期待着与诸位以及大中华区高层管理团队一道共同实现我们的雄心壮志,在2008财年继续保持我们的发展势头。
谢谢!
转载请注原文地址:
中文版:http://www.itdigger.com/2007/09/19/151431421.htm
英文版:http://www.itdigger.com/2007/09/19/15115378.htm
http://plod.popoever.com/archives/000737.html
微软ceo
分类: 耳边风
Steve Ballmer的过激反应
看到这么一个花边新闻,是从M$诉Google聘用李开复一案的一份名为Declaration of Mark Lucovsky(Mark Lucovsky的声明)的文件中流出来的,关于M$的CEO Steve Ballmer在其中有大量four-letter-word,属于限制级......
文中Mark Lucovsky在2004年11月4日离开微软去Google之前和Ballmer曾有过一次谈话
Prior to joining Google, I set up a meeting on or about November 11, 2004 with Microsoft's CEO Steve Ballmer to discuss my planned departure....At some point in the conversation Mr. Ballmer said: "Just tell me it's not Google." I told him it was Google.
然后,Ballmer便有了这样一席惊人的举动和言辞
而最新的消息是
Ballmer yesterday dismissed Lucovsky’s version of the events as “a gross exaggeration of what took place”. He said the engineer’s decision to leave Microsoft was “disappointing”. “I urged him strongly to change his mind,” Ballmer said. “His characterisation of that meeting is not accurate.”
这个乱哟!Gentlemen都哪里去了?厕所门上?
via battellemedia & Business Telegraph
Posted by POPOEVER at 2005年09月05日 00:56 |
back to top
Trackback Pings
本篇日志的回溯引用地址:
http://plod.popoever.com/acp630/mt-tb.cgi/761
select trunc(sysdate ,'dd') from dual ; -- 2007-9-19
select trunc(sysdate ,'yyyy') from dual ; --2007-1-1
select trunc(sysdate ,'mm') from dual ; --2007-9-1
begin
dbms_output.put_line( to_char ( (sysdate) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( to_char ( (sysdate)+ 1/24/60/10 , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( to_char ( ((sysdate)+ 10 / ( 24*60*60 ) ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( to_char ( trunc((sysdate)+ 10 / ( 24*60*60 ) ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
end ;
/
begin
dbms_output.put_line( '当前时间 ' ) ;
dbms_output.put_line( to_char ( (sysdate) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前时间 + 1 s ' ) ;
dbms_output.put_line( to_char ( (sysdate)+ (((1/24)/60)/60 ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前时间 + 1 s ' ) ;
dbms_output.put_line( to_char ( (sysdate)+ (((5/24)/60)/60 ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前时间 + 10s ' ) ;
dbms_output.put_line( to_char ( ((sysdate)+ ( 10 / ( 24*60*60 )) ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前 日 ' ) ;
dbms_output.put_line( to_char ( trunc((sysdate)) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前 第2天 1点 ' ) ;
dbms_output.put_line( to_char ( trunc(sysdate)+( 1 + 1/24 ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
dbms_output.put_line( '当前 第2天 9点 ' ) ;
dbms_output.put_line( to_char ( trunc(sysdate)+( 1 + 9/24 ) , 'yyyy-mm-dd hh24:mi:ss' ) ) ;
end ;
/