小技巧
现在工作有大量exp/imp工作,其中遇到过需要该表名的,恢复的时候也遇到过类似情况,之前都是把原表改名再让道给imp的表
现在有另一个方法可选择,思路如下:
1.复制现有表结构
2.在"另一用户"下简历一样的同义词,指向新表
3.使用"另一用户"imp
4.验收
5.drop同义词
实践:
table owner:asrs
原表:ttt2
新表:ttt2_new
另一用户:sys
新建立需要的原表:
conn asrs/password
SQL> create table ttt2 as select * from user_objects;
Table created.
SQL> select count(*) from ttt2;
COUNT(*)
----------
1971
简历新表,并复制表结构
SQL> create table ttt2_new as select * from ttt2 where rownum<1;
Table created.
SQL> select count(*) from ttt2_new;
COUNT(*)
----------
0
导出原表
[oracle@THWMSDB01 ~]$ exp asrs/password tables=ttt2 file=ttt2.dmp
Export: Release 10.2.0.3.0 - Production on Wed Mar 24 16:04:27 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Export done in UTF8 character set and UTF8 NCHAR character set
About to export specified tables via Conventional Path ...
. . exporting table TTT2 1971 rows exported
在另一用户下建立同义词:
[oracle@THWMSDB01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Mar 24 16:03:56 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> CREATE SYNONYM TTT2 FOR ASRS.TTT2_NEW;
Synonym created.
导入数据到同义词
[oracle@THWMSDB01 ~]$ imp \'sys/SINoracle10g as sysdba\' ignore=y file=ttt2.dmp commit=y full=y TOUSER=sys;
Import: Release 10.2.0.3.0 - Production on Wed Mar 24 16:05:26 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Export file created by EXPORT:V10.02.01 via conventional path
Warning: the objects were exported by ASRS, not by you
import done in UTF8 character set and UTF8 NCHAR character set
. importing ASRS's objects into SYS
. . importing table "TTT2" 1971 rows imported
Import terminated successfully without warnings.
验收
[oracle@THWMSDB01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Mar 24 16:05:32 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
SQL> conn asrs/password;
Connected.
SQL> select count(*) from ttt2_new;
COUNT(*)
----------
1971
清理借用同义词
SQL> DROP SYNONYM TTT2;
Synonym dropped.
SQL> conn asrs/asrs123;
Connected.
SQL> select count(*) from ttt2_new;
COUNT(*)
----------
1971
SQL>
注意事项:
1.新表的表结构需要和dmp内的表结构一样
2."另一用户"需要有相应权限,这里使用了sys
3.导入时需要添加参数ignore=y避免重复建表
4.开始的时候建立了public的同义词失败,后来建立私有的就ok了
分享到:
相关推荐
在关系型数据库中,如MySQL、PostgreSQL、Oracle等,表是数据的主要结构,每个表都有一个唯一的名称,即表名。 1. **单个表名的修改**: 在MySQL中,可以使用`RENAME TABLE`语句来更改表名。例如,如果你有一个名...
可能考虑的增强包括添加支持其他数据库系统(如MySQL、Oracle、PostgreSQL等,因为它们的SQL语法略有差异),处理SQL注释,支持多语句文件,以及增加参数选项,如输入和输出文件路径、过滤特定表名等。 总的来说,...
在Oracle环境中,这个过程通常涉及到两个主要工具:`expdp`(Export Data Pump)和`impdp`(Import Data Pump)。这两个实用程序是Oracle Data Pump的一部分,提供了高效的数据移动能力。 **1. expdp(Export Data ...
在这个例子中,'hostname'、'port'、'service_name'、'username'和'password'需要替换为实际的Oracle数据库信息,'table_name'是你要查询的表名。 总结来说,这个压缩包提供了在Jupyter Notebook中使用Python 3.6...
因此,如果你的SQL Server表名是小写的,导入Oracle时必须转换为大写。这可以通过在Wizard中更改表名或在导出前在SQL Server中修改表名来实现。否则,Oracle可能无法识别并访问这些表。 一旦所有的设置都准备好了,...
无论是Oracle Data Pump还是Export Utility,它们都提供了数据导出的元数据,这些元数据可以在后续使用Import Utility(impdp或imp)将数据导入到另一个Oracle数据库中。导入过程同样可以通过指定各种选项来定制,以...
import cx_Oracle # 创建数据库连接 dsn = cx_Oracle.makedsn("数据库主机名", "监听端口", "服务名") connection = cx_Oracle.connect("用户名", "密码", dsn) # 创建游标对象 cursor = connection.cursor() # ...
`tables`参数则指定了需要导出的具体表名。 ##### Step 2: 数据导入前准备(Preparation for Import) 接下来,在目标系统上,我们需要准备好导入数据的环境。首先,使用`imp`命令导入数据: ```sql imp ...
import cx_Oracle # 创建数据库连接字符串 dsn = cx_Oracle.makedsn('hostname', 'port', 'service_name') # 建立连接 connection = cx_Oracle.connect('username', 'password', dsn) # 创建游标 cursor = ...
import cx_Oracle dsn = cx_Oracle.makedsn("数据库主机名", "监听端口", "服务名") connection = cx_Oracle.connect("用户名", "密码", dsn) cursor = connection.cursor() cursor.execute("SELECT * FROM 表名")...
`result.ctl`文件是Oracle数据泵(Data Pump)的导入控制文件,它定义了导入数据的详细规则,包括表名、字段映射、数据转换等。`uuuuuu.tsv`文件则是我们要导入的TSV数据文件,其中包含待加载到Oracle数据库的数据。...
Oracle数据库的导出与导入是数据库管理中常见的操作,用于数据备份、迁移或者恢复。本教程将基于"oracle数据库导出与导入.rar"压缩包,详细介绍如何在Oracle环境中执行这些操作。 首先,Oracle的导出(Export)是...
在 BIEE Administration Tool 中,可以通过菜单 File > Import > from Database 来导入数据源。选择需要导入的表后,可以进一步在物理层中手动建立表与表之间的主外键关系,或者预先在数据库中建立好这些关系。 **...
import cx_Oracle # 创建数据库连接 dsn = cx_Oracle.makedsn('数据库主机', '监听端口', '服务名') connection = cx_Oracle.connect('用户名', '密码', dsn) # 创建游标 cursor = connection.cursor() ``` 然后...
EXPDP(Data Pump Export)是 Oracle 10g 及更高版本中引入的一款高性能的数据导出工具,而 IMPDP(Data Pump Import)则是与 EXPDP 配套的数据导入工具。 EXPDP 的优点在于它可以使用专门的 API(Direct Path API...
- 使用日期格式进行条件筛选,以及优化EXPORT和IMPORT操作等。 3. Oracle内部操作:了解Oracle数据库的内部操作可以更好地帮助开发者避免一些常见的性能问题,比如在索引列上使用计算,强制索引失效,避免使用耗费...
在日常运维和开发工作中,数据的导入与导出是必不可少的操作,Oracle提供了多种工具来支持这一需求,其中最常用的是"expdp"(Export Data Pump)和"impdp"(Import Data Pump)。本篇文章将详细介绍这两个工具及其...
imp [username/password] file=export_file dumpfile=destination_file log=import_log.log ``` - `username/password`:数据库连接的用户名和密码。 - `file`:指定要导入的`.dmp`文件路径。 - `dumpfile`:指定...
- 使用Oracle JDBC驱动,可以通过标准的SQL命令执行增删改查等操作。 3. **实现Excel数据导入Oracle数据库** - **读取Excel文件**: - 使用POI提供的`HSSFWorkbook`类来读取`.xls`文件。 - 通过`getSheetAt(int...
1. **使用EXPDP/IMPDP工具**:Oracle Data Pump Export (EXPDP) 和 Import (IMPDP) 是用于大量数据迁移的高效工具。首先,使用EXPDP从源用户导出数据,指定用户、表空间等相关参数。例如: ``` expdp 用户名/密码 ...