暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle日常操作命令(下)

Oracle技术就绪 2015-09-21
403

如何将SQL语句保持到OS文件

将目前还处在SQL缓冲区的SQL语句保持到一个文本文件中,可以在需要时重复使用 。

问题的提出

如果你经过多次修改将较为复杂的SQL语句编辑正确,你可将该SQL语句保持一个文本文件中以便下次使用或与其他的语句进行编辑完成更为复杂的应用要求,那么如何实现将当前缓冲区SQL存为文本文件的要求呢?

实现技术

SQL*Plus环境中,Oracle提供可将缓冲区的SQL语句保存到OS路径的文本文件中,满足这样的要求可由Save 命令实现。

实现步骤

当确认目前SQL缓冲区还有SQL语句时,可在SQL>提示下用Save OS路径和文件名来实现,如:

S--

--适应版本:Oracle 9i~12c

--

SQL> select * from dept where deptno=10

--下面的SAVE命令将当前的SQL语句保存到c:路径下

SQL> save c:\sel_dep

已创建 file c:\sel_dep.sql

SQL>

说明

Save命令可保持当前SQL缓冲区的SQL语句到文本文件,一般建议你给出有效的OS路径和文件名,如果没有给出路径,则文件会记录到$ORACLE_HOME/bin目录下;如果你给出的文件与目前OS路径的存在的文件名重复,则被提示:

SP2-0540: 文件 "c:\sel_dep.sql" 已经存在?

使用 "SAVE filename[.ext] REPLACE"。;

如果你希望将目前的SQL语句以追加的方式记录到现有文件的尾部,则需要在Save 命令的文件名后加“app”,如:save c:\sel_dep app

如何启动SQL脚本文件运行

设计较复杂的应用系统时,一般先将各种创建对象的SQL语句编辑成脚本(后缀为.SQL的文本文件称为脚本),这些脚本以文本文件的方式存储在OS的路径下,当我们需要执行这些脚本时,可直接从SQL*Plus 环境启动运行这些脚本以完成一系列的工作 。

问题的提出

如果我们已经完成某些SQL脚本的编辑工作,则希望在SQL>提示下直接运行这些脚本来完成批处理工作,那么如实现这样的要求呢?

实现技术

SQL*Plus 环境中,可使用start命令来启动一个编辑正确的SQL脚本文件运行,这个SQL脚本文件的类型可以是.SQL类型,也可是.TXT.LST类型。

实现步骤

下面start c:\sel_dep 命令是假设在c:\路径下已经存储sel_dep.sql文本文件前提下,需要执行该文本文件而发出的启动命令:

--

--适应版本:Oracle 9i~12c

--

SQL> start c:\sel_dep

DEPTNO DNAME LOC

---------- -------------- ------------

10 ACCOUNTING NEW YORK

说明

如果SQL脚本文件的类型是.SQL类型,则启动运行只给出文件名即可,如果脚本文件类型为.txt,则要给出文件名与类型.txt,如start c:\sel_dep.txt等。

如何获取SQL运行消耗时间

对于开发人员来说,除了关心应用系统开发外,还关心应用程序中的SQL语句的性能。每个SQL语句被执行后,都被Oracle 系统记录所用去的时间 。

问题的提出

每个SQL被执行后,我们希望了解该SQL语句运行用去的时间,从而了解语句的优劣及修改效果差的SQL语句,那么如何看到当前SQL语句运行所用去的时间呢?

实现技术

SQL*Plus 环境中,可通过设置计时器来实现,具体就是使用Set timing on命令来实现。

实现步骤

我们要得到SQL语句执行所用去的时间,先用set timing on 命令进行设置,如:

--

--适应版本:Oracle 9i~12c

--

SQL> -- 现在设置计时器,然后发出SQL 语句 :

SQL> set timing on

SQL> select * from dept;

DEPTNO DNAME LOC

---------- -------------- -------------

50 abc Beiijing

10 ACCOUNTING NEW YORK

20 RESEARCH DALLAS

30 SALES CHICAGO

40 OPERATIONS BOSTON

60 dlld tj

已选择6行。

已用时间: 00: 00: 00.01

说明

这里的时间格式分别是 小时.毫秒,我们可对那些怀疑的SQL语句做类似的比较,从而确定哪些语句更优。



Oready即为“One Technology Ready”!

Oready不仅仅是数据库领域的专家,同时也是一个社区,我们汇集百位数据库领域资深顾问、讲师,服务于数据中心的技术支持与技能传授,注重对客户的关键数据库运营支撑,强调经验的分享-Skill Transfer,聚焦数据中心的完美结合.


文章转载自Oracle技术就绪,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论