Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119968
  • 博文数量: 24
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-11-22 14:58
个人简介

坚持,做最好的自己

文章分类

全部博文(24)

文章存档

2015年(2)

2014年(9)

2013年(13)

我的朋友

分类: Oracle

2013-01-29 18:22:26

exp出数据时,偶尔要求仅导入大表中的部分数据。这时就需要使用到query子句
在query子句中可能涉及到数字类型,字符串类型或者日期类型,为此做简单的测试
建表和数据:
create table test_qu (
    col_num number(10),
    col_var varchar2(10),
    col_dat date
);
insert into test_qu
select rownum,to_char(rownum*5),round(sysdate+rownum) from dual connect by rownum < 20;
commit;
select * from test_qu;



UNIX:
exp report/oracle@ora10 file=1.dmp TABLES=\(test_qu\) QUERY=\"WHERE col_num \>= 5\"
exp report/oracle@ora10 file=1.dmp TABLES=\(test_qu\) QUERY=\"WHERE col_var \>= \'5\'\"
exp report/oracle@ora10 file=1.dmp TABLES=\(test_qu\) QUERY=\"WHERE col_dat \>= to_date\(\'20130129\',\'yyyymmdd\'\)\"



WINDOWS:
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY="'WHERE col_num >= 5'"
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY='"WHERE col_num >= 5"'
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY="'WHERE col_var >= ''5'''"
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY='"WHERE col_var >= ''5''"'
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY="'WHERE col_dat >= to_date(''20130206'',''yyyymmdd'')'"
exp report/oracle@ora10 file=1.dmp TABLES=(test_qu) QUERY='"WHERE col_dat >= to_date(''20130206'',''yyyymmdd'')"'



上例是对常用的三种类型数据的简单范例。


需要注意的是,如果server使用9.2的版本,而客户端使用10g的版本,则会报错
EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
EXP-00000: Export terminated unsuccessfully

阅读(2511) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Shell输入密码时关闭屏幕回显

给主人留下些什么吧!~~