文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院程序开发Oracle利用数据库效用给UNIX命名管道
精品推荐
特别推荐
·常用数据库比较
·ODBC API常用函数诠释
·提高ORACLE数据库的查询统计速度
·细化解析:Oracle使用的hints调整机制
·解析Oracle/Oracle Forms 的多用途代码
·从Oracle的FORM中调用REPORT的实用技巧
·Oracle SQL精妙SQL语句讲解
·ORACLE学习笔记--性能优化四
·ORACLE常用傻瓜问题1000问
·ORACLE常见错误代码的分析与解决之二
·深刻理解Oracle数据库的启动和关闭
·监控Oracle数据库的常用shell脚本
·Oracle在Solaris下的性能与调整简介
·通俗解说ORACLE
·数据库安全性策略
热点TOP10
·详细介绍ORACLE sqlplus命令
·ORACLE常用傻瓜问题1000问
·我的oracle笔记四(DBA管理)
·Oracle SQL精妙SQL语句讲解
·Oracle Tuning (Oracle 性能调整)的一些总结
·我的oracle笔记一(sql语句方面)
·程序员如何掌握计算机英语
·用正则表达式函数验证身份证号码合法性
·oracle数据库 exp/imp命令详解
·性能分析工具的使用
·ORACLE UPDATE 语句语法与性能分析看法
·在Solaris 10 X86上安装Oracle 10g RAC详解 (1)
·ORA-01092: ORACLE 例程终止。强行断开连接
·VMware下RedHat安装Oracle 9i RAC全攻略
·监控Oracle数据库的常用shell脚本
·手工创建oracle数据库
·常用数据库比较
·PL/Sql循序渐进全面学习教程
·在Solaris 10 X86上安装Oracle 10g RAC详解 (2)
·Oracle客户端文件打包

利用数据库效用给UNIX命名管道

日期:2007年7月2日 作者: 查看:[大字体 中字体 小字体]



  大多数Oracle效用,比如导出,导入和SQL*装入程序,但是我们通常会直接使用标准的输入和输出。这个是UNIX 的一个问题,因为大多数时候UNIX都默认或者通过特殊选择允许你使用标准的输入或者输出。
  
  为了接受标准的输入输出,允许你使用链式命令,比如:
  
  tar cvf - dir gzip > file.tar.gz
  gunzip < file.tar.gz tar -xvf –
  
  这些命令不需要中介文件因为管道的读或者写数据都在不同的线程中。
  
  一个管道事实上只是一个记忆的缓冲器,它接受两个不同进程的读写,这两个进程允许它们从前到后的传送数据。记忆缓冲器通常会限制大小;当它满的时候它会阻止写进程,当它空的时候,它回限制读进程。
  
  它们的优势就是永远不会把内存使用光也不会需要任何磁盘存储。当你没有空间存储非压缩版本的时候,上面的例子将允许你存储一个文档的压缩版本。
  
  Oracle的导出和导入不能直接引用标准的输出和输入。但是,一个命名的小窍门允许你完成这个命令。一个命名的管道是一个UNIX文件的操作它影射到操作系统的管道中。
  
  为了创造命名管道,你可以使用p选项来执行mknod命令。习惯上我们可以这么写:mknod -p <pipename>;另外,在Linux中,我们这么书写:mknod <pipename> p.大多数的系统效用中,管道的结果就好像顺序文件,比如,压缩用户的导出文件:
  
  mknod /tmp/mypipe p
  exp userid=scott/tiger file=/tmp/mypipe &
  gzip < /tmp/mypipe > exp.dat.gz
  rm /tmp/mypipe
  
  根据我的测试,压缩导出文件只是普通大小的八分之一:
  
  mknod /tmp/mypipe p
  imp userid=scott/tiger file=/tmp/mypipe &
  gunzip < exp.dat.gz > /tmp/mypipe
  rm /tmp/mypipe
  
  SQL*的装载程序是另外一个效用,它可以使用这个技巧。SQL*装入程序可以接受输入输出的数据。比如,你可以创建一个表格捕获输出:
  
  drop table lsout;
  create table lsout
  (
    attrs    char(10),
    links    integer,
    owner    varchar2(8),
    grpname   varchar2(8),
    filesize  integer,
    crdate   date,
    filename  varchar2(256)
  );
  
  为了检测输出,可以使用SQL*装入程序控制文件:
  
  load data
  truncate
  into table lsout
  (
    attrs    position(01:10),
    links    position(12:15),
    owner    position(17:24),
    grpname   position(26:34),
    filesize  position(36:42),
    crdate   position(44:55) DATE "Mon DD HH24:MI",
    filename  position(57:300)
  )
  
  现在,创建一个命名管道,在背景线程中创建SQL*装入程序:
  
  #!/bin/csh
  mknod /tmp/mypipe p
  sqlldr userid=scott/tiger control=lsout.ctl data=/tmp/mypipe skip=1 &
  ls -l > /tmp/mypipe
  wait
  cat lsout.log
  rm /tmp/mypipe
  
  SQL*装入程序可以装入一个文件到CLOB中,因为命名管道就好像是文件一样,你可以定义命名管道的名字来代替一个文件名并装入输出管道到数据库的CLOB中。
  
  下面来看个例子:
  
  create table xml_repository(doc clob);
  
  现在,你需要创建SQL*装入程序来控制文件:
  
  load data infile *
  truncate into table xml_repository
  fields terminated by whitespace
  (
    pipe filler,
    doc lobfile(pipe) terminated by eof
  )
  begindata
  /tmp/mypipe
  
  为了更详细的展示这个技术,这里有一个简单的脚本。
[1] [2] 下一页 




上一篇:网格技术的构架、特点及其管理

下一篇:忘却Oracle的5个方面

利用数据库效用给UNIX命名管道 相关文章:
·利用腾讯漏洞取回QQ密码
·SQL2000 数据库安装说明
·SQL数据库完全使用手册
·Visual C++ ADO数据库编程入门
·利用Google突破封锁:下载想要的东西
·在 C++ Builder中利用串行通信控件编程
·目前最好的JSP分页技术(考虑到数据库移植,并修正过效率)
·利用word将PDF转换DOC文件的方法
·快速利用135端口入侵个人电脑
·利用 wordXP 实现自动排班
利用数据库效用给UNIX命名管道 相关软件:
·ACCESS数据库教程 北京大学的ACCESS教程
·爆出网站数据库路径
·逐步精通数据库 sql server 视频教程
·shell编程和unix命令
·SQL/MYSQL/数据库教程专栏
·Active Server Pages & Web 数据库(PDG)
·QQ IP数据库 Build 0410
·东南大学SQL数据库基础视频教学全42讲 CSF 详见查看
·数据库与WWW
·网页数据库整合精华录PDG

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot