利用QUERY选项输出数据

本文介绍了如何在Oracle数据库中使用EXP命令结合WHERE条件语句来导出特定的数据记录。根据不同操作系统,文中详细说明了在Windows和UNIX环境下设置QUERY参数的方法,并提供了一个具体的案例。
我知道在 Oracle8i中,可以使用QUERY有选择地输出表数据。我想用EXP命令来实现,但没有成功。下面是我所写的命令,以及得到的错误信息:[@more@]
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 语句里面往往有很多特殊的字符,如=.>.
下面给出一个例子。我用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字符串容易多了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/262387/viewspace-836389/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/262387/viewspace-836389/

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值