关闭

Oracle 的 Sql*Plus 常用命令介绍

标签: sqloraclewindowslistunixdos
2144人阅读 评论(0) 收藏 举报
分类:

估计用Oracle的几乎一开始都是使用Sql*Plus吧,

毕竟这个工具可以运行在任何的Oracle运行的平台上,这个工具呢,您可以在客户端实现安装,也可以在服务端安装,在客户端的安装呢,主要是通过安装Oracle提供的客户端软件安装,而在服务端的话,则是通过安装Oracle时自动安装的,Sql*Plus呢,其是一个基于C/SSql开发工具,包括客户层和服务层,其可以实现执行Sql语句或者是执行含有Sql语句的文件,同时,其也能够执行PL/Sql语句,所以说是非常的方便啊,这一篇博文呢,我将会介绍一些关于Sql*Plus常用的命令:

1.连接Oracle命令

您可以在DOS窗口下运行SqlPlus命令或者是SqlPlus/nolog等等诸如的命令,

   但是需要明白的是,这里呢,您要想直接在DOS下运行上面的命令,还必须设置好环境变量,因为实质上,您运行的这条命令所在路径是

  D:\app\XiaoZhen\product\11.1.0\db_1\BIN下的SqlPlus.exe

image

2.登陆Oracle命令

使用connect用户名/密码,或者是直接运行connectconnect命令是可以缩写为conn的),如果是直接使用connect命令的话,则会在后续的运行中提示输入用户名和密码,直接运行connect命令呢,有一大好处,就是您输入的密码会自动隐藏,不让用户看见,比如下面的例子中口令行就被隐藏了

image

3.“/“命令

这里需要提及一个东西,就是当运行Sql*Plus时,Oracle会在在缓冲区中保留最后的执行命令,而针对这个缓冲区中的保存的命令,可以使用符号“/”来快速访问,

即可以使用“/”命令来再次运行您最后执行的命令

image

4.SQL*PLUS行编辑List命令

这里呢,也还是需要提一下,就是Sql*Plus呢提供了一个行编辑的功能,这个功能呢主要是针对快速修改Sql缓冲区中的Sql语句,并且再次用来执行。需要注意的是,由于缓冲区中只保存了您执行的最后一条Sql语句,而行编辑就是针对这一条语句来说的,因为这一条Sql语句可能有n行,List命令呢,总共有三种形式

List --列出缓冲区中所有的行,

List n --列出缓冲区中的第n行,

List * --列出当前行,

然后呢,您需要注意的是哪一行才是当前行,当前行呢,在使用List列出后,

会在其前面有一个*标志,当前行会随着您的选择而变化。下面的例子中Sql语句总共有三行,您可以注意*的变化

image

5. Sql*Plus行编辑之Del命令

这个Del命令呢,就是用来删除缓冲区中储存的Sql语句的指定的行的。

形式呢,也可想而知,有三种,

Del --删除所有行,

Del n --删除指定行,

Del * --删除当前行

image

6. Sql*Plus行编辑之Input命令

   前面呢,介绍了行编辑的查看和删除,那么这里就要介绍如何往缓冲区中的行里头添加新的行,这里就是使用Input命令来实现的,详细的请看下面的演示过程

image

7. Sql*Plus行编辑之Change命令

   这个Change命令的作用就是将Sql缓冲区中的某行进行修改

image

8.清空Sql缓冲区命令

   Clear Buffer,作用的话自然是将Sql缓冲区中的所有行进行删除,即清除缓冲区

image

9.定义Sql编辑器命令

   define_editor  (查询当前SQL*Plus的编辑器方法)

各位呢,估计也是体会到了在Sql*Plus这个黑框框中输入Sql语句时的麻烦,但是呢,下面介绍的是您自己可以自定义一个编辑器来编辑Sql语句,下面的例子是

先定义您的编辑器,我定义的是记事本程序(您也可以定义成其他的编辑器),

然后我在缓冲区中留下一条Sql语句(就是执行一条Sql语句而已),

再调用ed(edit的缩写),这样就可以调出一个记事本的窗口,并且,

   会自动将Sql缓冲区中的内容写入到这个记事本编辑器中,您呢,可以通过在记事本中编辑您的Sql语句,这些内容会自动保存到缓冲区中,

然后再在Sql*Plus中运行“/”来调用Sql缓冲区中的内容(即在记事本中定义的内容),其妙用呢,还请看下面的演示

image

然后我再在上面的记事本中将Sql语句修改为select max(empno) from emp;

然后保存记事本中的内容,重新调用“/”,

image

image

 

补充:修改SQL*Plus的编辑器方法
直接给_editor赋予编辑器的名字即可。
1)修改UNIX环境下SQL*Plus编辑器为vim
sec@UNIX> define _editor=vim
sec@UNIX> define _editor
DEFINE _EDITOR         = "vim" (CHAR)

此时便可输入edit(或简写作ed)使用vim编辑器进行编辑了。

2)修改Windows环境下SQL*Plus编辑器为写字板(wordpad、write.exe)
Windows环境下默认的编辑工具是记事本(notepad),可以使用下面的方法将其修改为功能稍显强大的写字板。
sec@Windows> define _editor=write
sec@Windows> define _editor
DEFINE _EDITOR         = "write" (CHAR)

此时便可输入edit(或简写作ed)使用写字板进行编辑了。

 

 

10. Save命令

   Save命令呢,是将Sql缓冲区中的内容来保存到指定路径的文件中(默认是. sql的后缀名)。

   如果这个文件已经存在的话,将会写入失败,当然,如果您想覆盖掉这个文件的话,

   您可以在后面加Replace命令,比如save d:\test replace

image

image

image

11.使用注释命令

   在Sql*Plus中,您可以使用三种方法实现注释,

   一是使用Remark命令来实现单行注释,且是用于命令文件中(即. sql中)

   二是使用/*…….*/来实现多行注释,

   三是使用--来实现单行注释

image

image

image

image

12. Run命令

   首先是run(缩写是r)命令,这条命令的作用是列出当前缓冲区中的Sql语句,

   同时执行这条语句,其可以和“/”来对比,“/”这个命令呢,只是执行缓冲区中的语句,而并不会显示出缓冲区中的Sql语句

image

13. @命令

   这个命令呢,是用来运行指定路径的文件中定义的Sql(当然也包括PL/SQL)语句的。

   这个命令既可以在会话层使用,也可以在命令层使用,何为会话层呢,

   就是当用户登录了Oracle时,就会自动建立一个会话,在这个层面上就是会话层,

   而何为命令层呢,自然就是没有用户登录的情况下,而只是使用SqlPlus命令连接到了Oracle,

image

14. Start命令

   这个命令呢,和“@”命令功能很类似,但是呢,这个命令却并没有“@”命令那么强大,其只能运行在会话层,而不能工作在命令层。

image

15. Get命令

   Get命令呢就是将指定路径下的.sql文件中的内容读取出来,但是并不执行这些内容。

image

在Sql*Plus中呢,其实还有很多的命令,诸如格式化列啊,

设置每一页显示的记录条数啊,设置每一行的宽度啊,

设置指定名称列的宽度啊,

这些呢,我就只稍微写点范例了,因为这些都太常见,几乎每次都要使用,

估计大家也都很熟悉了,所以便不作介绍了

col ename for a50

set pagesize 100

set linesize 200

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:142762次
    • 积分:1968
    • 等级:
    • 排名:第19908名
    • 原创:56篇
    • 转载:34篇
    • 译文:0篇
    • 评论:13条
    最新评论