在数据库中把ABC开头的表名全部找出来,用","连接成一个字符串,
导出:
  exp80 .... tables=(ABC1, ABC2, ...)

解决方案 »

  1.   

    不能用一个类似于 like'ABC%'东西吗?
    很多的表,我难道都要写出来?有没有简单一点的办法?
      

  2.   

    没有了,只有慢慢写,
    或先用select * from user_tables,然后拷贝成脚本
      

  3.   

    exp命令的功能有限,无法满足楼主的要求,Oracle公司应该对这个命令再增加一些参数,增强其导出功能。有时我想导出一个用户下除了一个表之外的所有表都办不到,只能一个一个的把表名列出来。楼主的问题这样可能简单些,在sqlplus下执行
    SELECT tname||',' FROM tab WHERE tname LIKE 'ABC%' AND tabtype='TABLE';将查询的结果拷贝到一个文件中,比如:ABC1,
    ABC2,
    ABC3,然后编辑此文件,在第1行增加如下内容
    userid=username/pass file=d:\file.dmp log=d:\log.log tables=(最后一行表名后的“,”去掉,换为“)”,形成的文件类似为:userid=username/pass file=d:\file.dmp log=d:\log.log tables=(
    ABC1,
    ABC2,
    ABC3,
    ...
    ABCN)然后另存为filename.txt文件,这样就可以执行导出了:
    exp parfile=filename.txt
      

  4.   

    用这样的命令生成一段脚本:
    select 'EXP USRNMAE/PASSWORD TABLES(' || TABLE_NAME || ')' from    
    user_table where table_name like 'A%' OR like 'B%' OR like 'C%';不过着只能导成多个文件,如果要导成一个文件,可以写一个存储过程。
    以上只是参考。