动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章
  

 EXP 数据库数据 QUERY 选项使用问题

作者来源:51CTO.com整理  
阅读 数 59 人次 , 2006-3-18 11:53:00 

问题:我知道在 Oracle8i 中,可以使用 QUERY 有选择地输出表数据。我想用 EXP 命令来实现,但没有成功。下面是我所写的命令,以及得到的错误信息:

exp ddd/ddd file=/dbf/u11/customer.dmp

tables=AASC.AST_CUSTOMER_KEEP

query=\'where CUA_TRANS_DTS \<

add_months\(sysdate, -6\)\'

table_export[2]: CUA_TRANS_DTS: not found. (没有找到)

答:操作系统不同,用来指定 QUERY= 参数的方法也不同。 WHERE 语句里面往往有很多特殊的字符,如 =.>.< 和空格等等。而 UNIX 和 Windows 操作系统中的外壳命令提示是不欢迎这些字符的,这些字符将被忽略。你应该根据不同的操作系统采用不用的方法。我一般使用带有 QUERY 选项的参数文件( PARFILE ),利用 PARFILE ,可以不考虑操作系统平台而使用完全相同的方法。

下面给出一个例子。我用 select * from all_objects 建立了一个表 T ,我希望输出所有 object_id 小于 5000 的行。在 Windows 中,必须这样做:

C:\exp>exp userid=tkyte/tkyte tables=t

query="""where object_id < 5000"""

注意:在 windows 中,需要在 WHERE 语句的两端使用三个双引号。在 UNIX 中,必须这样做:

$ exp userid=/ tables=t query=\"where

object_id \< 5000\"

exp userid=/ tables=t parfile=exp.par

如果使用包含 query="where object_id < 5000" 的 PARFILE 文件,我可以在两个系统中使用相同的一个命令:

exp userid=/ tables=t parfile=exp.par

在两种操作系统中,完全相同。这相对于在不同的平台中使用不同的 QUERY 字符串容易多了。



 本文Tags数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:RESETLOGS后没有备份情况下的数据恢复(1)
· 下一篇:在UNIX裸设备和文件系统之间移动ORACLE(1)
· 全面接触SQL语法(7)
· 关于MSSQL数据库日志满的快速解决办法
· DB2中实现正则表达式(1)
· 无数据库日志文件恢复数据库方法两则
· MYSQL基本数据库术语


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077