Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从Oracle data pump导入表的特定rownum范围?_Oracle - Fatal编程技术网

如何从Oracle data pump导入表的特定rownum范围?

如何从Oracle data pump导入表的特定rownum范围?,oracle,Oracle,我正在使用Oracle XE 11g的impdp,试图从数据泵文件(*.dmp)导入表的特定范围(以rownum为单位) 在基本Oracle查询中,我们可以读取rownum范围内的数据(my_start=my_start和r

我正在使用Oracle XE 11g的impdp,试图从数据泵文件(*.dmp)导入表的特定范围(以rownum为单位)

在基本Oracle查询中,我们可以读取rownum范围内的数据(my_start=my_start和r 通过其中的嵌套查询

然而,在impdp的parfile中编写查询时,我发现查询只能包含where子句,因此无法导入数据的特定rownum范围

我想问以下问题

  • 有没有办法在impdp查询中使用嵌套的select子句
  • 如果没有,是否有其他方法导入特定rownum范围的数据

  • 感谢您阅读我的问题。

    据我所知,您必须导入整个表并删除不需要的内容


    或者,更改一个表并添加一个新列,该列将表示您感兴趣的范围。然后,当您想要导入该特定范围时,请使用导入数据泵的
    QUERY
    子句中新添加的列。

    使用这样的子查询仅对
    order by
    才有意义。您正在尝试获取一个包含下限和上限的范围,但即使只是一个上限,如链接问题(
    WHERE rownum@AlexPoole最终,我试图将一个超过100GB的表从一个数据泵文件导入到限制为11GB的Oracle XE中。因此,我决定安装多个Oracle XE(docker容器),将表拆分为10GB的部分并分别导入。ROWNUM是最简单的拆分条件,所以我正在使用它。有没有更好的方法拆分表?我可以在导入整个表之前更改表吗?如果可以,我如何编写impdp查询?导入前更改是无用的。我想在导出前更改。不幸的是,我无法访问原始数据库以再次导出数据库。我唯一拥有的是数据泵文件(*.dmp)。我明白了…那么,我知道的唯一选项是导入所有数据并删除您不需要的内容。数据太大,无法立即将文件导入Oracle XE。无论如何,感谢您考虑并回答我的问题!
    
    SELECT * from (
      SELECT t.*, ROWNUM r
      from my_table t
    ) WHERE r >= my_start AND r < my_end