易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL*Plus 中的spool使用方法

 在使用SQL*Plus生成报告文件的时候,往往会因为其默认的设置导致输出的结果非常的没有可读性,下面介绍一个日常中会被用到的一个脚本,其中包含一些格式化
输出的set命令
,为了方便理解,我会在每一条set命令之后紧跟着一个简单的解释,请慢慢体会。
sqlplus -s user_name/user_password << EOF >/dev/null
set echo off;      -- 不显示脚本中的每个sql
命令(缺省为on)
set feedback off;  -- 禁止回显sql命令处理的记录条数(缺省为on)
set heading off;   -- 禁止输出标题(缺省为on)
set pagesize 0;    -- 禁止分页输出
set linesize 1000; -- 设置每行的字符输出个数为1000,放置换行(缺省为80 )
set numwidth 16;   -- 设置number类型字段长度为16(缺省为10)
set termout off;   -- 禁止显示脚本中命令的执行结果(缺省为on)
set trimout on;    -- 去除标准输出每行的行尾空格(缺省为off)
set trimspool on;  -- 去除spool
输出结果中每行的结尾空格(缺省为off)
spool sql_output_file.txt;
... ...
这里输入待执行的SQL命令,SQL命令整个执行过程都会被记录在sql_output_file.txt文件中。
... ...
spool off;
exit;
EOF
经过上面的处理之后,spool出来的数据基本上没有多余的干扰数据了。
没有演示结果的技巧是无用的,也是枯燥的,所以,下面我来演示一下这个脚本的使用过程。
我们以输出all_objects视图的所有内容为例,进行演示。
ora10g@Tdb /home/oracle$ sqlplus -s sec/sec << EOF >/dev/null
set linesize 1000;
> set echo off;
set termout off;
> set feedback off;
> set heading off;
> set pagesize 0;
> set linesize 1000;
> set numwidth 16;
> set termout off;
> set trimout on;
> set trimspool on;
> spool sql_output_file.txt;
> select * from all_objects;
> spool off;
> exit;
> EOF
这里等待几秒钟的时间,查看结果文件sql_output_file.txt,就可以得到all_objects视图内的所有内容了,这个文件的格式是经过我们精心格式化之后的。
具体的导出文件sql_output_file.txt内容很长,不便于贴到这里。
可以使用cat命令查看输出文件的内容
ora10g@Tdb /home/oracle$ cat sql_outpu


相关文档:

SQL语句PART6

Differring Constraints:
Constraints can have the following attributes: DEFFERRABLE / NOT DEFFERRABLE,  INITIALLY DEFFERRED / INITIALLY IMMEDIATE.
e.g.:
alter table dept2 add constraint dept2_id_pk primary key (department_id) deferrable initially deferred; // deferring constraint on creation. ......

SQL Server

数据类型
在 Microsoft SQL Server中,每个列、局部变量、表达式和参数都有一个相关的数据类型,这是指定对象可持有的数据类型(整型、字符、money 等等)的特性。SQL Server 提供系统数据类型集,定义了可与 SQL Server 一起使用的所有数据类型。下面列出系统提供的数据类型集。
可以定义用户定义的数据类型,其是系统提 ......

linq to sql生成not in语句的小技巧

以前一直觉得linq to sql生成类似where id not in (1,3,5)或where id not in (select id from ...)这样的条件不是很方便,每次我都是把条件ID事先取到一个数组里,然后用 !Arr.Contains(c.Id)这样处理,今天突然发现这样好傻,其实可以完全直接用linq写成一句,贴个示例在这里,以后备查
from a in TableA where !(fr ......

SQL数据库还原语句

---附加数据库
sp_attach_db   '数据库名','数据库全路径','数据库日志全路径'
---查看数据库逻辑文件名
RESTORE FILELISTONLY from disk = '备份文件'
---还原数据库
restore database hzrb from disk = '备份文件'
with move '主逻辑名'     to '存放mdf路径'    ......

SQL去除某一字段值重复记录的方法

原理:对需要去重复记录的字段按组排序,然后取其中一条记录。在总查询语句中使用in语法过滤
去掉重复记录
select * from company where comid in (select Max(comid) from company group by companyname)
得到重复记录数
select * from company where comid not in (select Max(comid) from company group by companyn ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号