impdp 导入表 指定用户和表空间
时间: 2024-01-23 21:04:03 浏览: 54
您可以使用以下命令来使用 impdp 工具导入指定用户和表空间的表:
```
impdp <用户名>/<密码> directory=<目录名> dumpfile=<导出文件名>.dmp logfile=<日志文件名>.log remap_schema=<原用户名>:<新用户名> remap_tablespace=<原表空间名>:<新表空间名>
```
其中,`<用户名>` 和 `<密码>` 是目标数据库的用户名和密码;`<目录名>` 是导出文件所在的目录;`<导出文件名>.dmp` 是导出文件的名称;`<日志文件名>.log` 是导入过程的日志文件名;`<原用户名>` 是导出文件中的用户名称,`<新用户名>` 是您想要导入表所属的新用户名称;`<原表空间名>` 是导出文件中的表空间名称,`<新表空间名>` 是您想要将表导入的新表空间名称。
举个例子,如果您想要将 `hr` 用户在 `users` 表空间中的表导入到 `hr_new` 用户在 `users_new` 表空间中,则您可以使用以下命令:
```
impdp hr/hr directory=dpump_dir1 dumpfile=hr.dmp logfile=imp_hr.log remap_schema=hr:hr_new remap_tablespace=users:users_new
```
希望这可以帮助到您!
相关问题
impdp不知道原用户及表空间
如果您不知道导出文件中的原用户名和表空间名,可以使用以下命令来查看导出文件的详细信息:
```
impdp directory=<目录名> dumpfile=<导出文件名>.dmp sqlfile=<SQL文件名>.sql
```
这将生成一个 SQL 文件,其中包含有关导出文件的详细信息,包括原用户名和表空间名。您可以查看该文件以确定需要导入哪些表和到哪个新用户和表空间。
例如,您可以使用以下命令来生成 SQL 文件:
```
impdp directory=dpump_dir1 dumpfile=hr.dmp sqlfile=hr_info.sql
```
然后,您可以打开 `hr_info.sql` 文件并查找 `REMAP_SCHEMA` 和 `REMAP_TABLESPACE` 参数的值,以确定需要指定哪些新用户和表空间。
希望这可以帮助到您!
使用imp命令导入不同表空间,不是impdp命令
imp命令是Oracle数据库中用于导入数据的命令,而impdp命令是Oracle数据库中用于数据泵导入的命令。imp命令在导入数据时,默认会将数据导入到与源数据库相同的表空间中。如果需要将数据导入到不同的表空间中,可以通过修改导出文件中的DDL语句来实现。
以下是使用imp命令导入不同表空间的步骤:
1. 首先,使用exp命令导出数据,并指定导出文件的路径和名称。例如:
```shell
exp username/password@db_server FILE=c:\exp_filename.dmp LOG=c:\exp_log.log TABLES=(TEST)
```
2. 导出数据后,可以使用文本编辑器打开导出文件,找到DDL语句部分。修改DDL语句中的表空间名称为目标表空间的名称。例如,将表空间名从"SOURCE_TABLESPACE"修改为"TARGET_TABLESPACE"。
3. 保存修改后的导出文件,并使用imp命令导入数据。例如:
```shell
imp username/password@db_server FILE=c:\exp_filename.dmp LOG=c:\imp_log.log TABLES=(TEST)
```
通过以上步骤,可以使用imp命令将数据导入到不同的表空间中。