oracle 导出
SQL> $ exp username/password@db tables=t_ent_info file='d:\aa.dmp'; 不写表名表示导出所有表
导入:
$ imp scott/tiger@orcl file='d:\aa.dmp' full=y log='d:\a.log';
导入的时候可能会报错 如下 解决方案:
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TEST1 的对象导入到 TEST1
. 正在将 TEST1 的对象导入到 TEST1
IMP-00015: 由于对象已存在, 下列语句失败:
"CREATE TABLE "T1" ("A" VARCHAR2(20), "B" NUMBER, "C" NUMBER(4, 2)) PCTFREE"
" 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FR"
"EELIST GROUPS 1 BUFFER_POOL DEFAULT) LOGGING NOCOMPRESS"
成功终止导入, 但出现警告。
destroy参数,用于覆盖表空间中的数据文件。 我刚才是想覆盖t1表,而不是数据文件。所以destory没有效果
[TEST1@orcl#20-5月 -10] SQL>drop table t1 purge;
表已删除。
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 TEST1 的对象导入到 TEST1
. 正在将 TEST1 的对象导入到 TEST1
. . 正在导入表 "T1"导入了 2 行
成功终止导入, 没有出现警告。
先删除 再导入就能成功
在同一个库中复制当前表结构或者表结构加数据到另一张表中如下
create table newtable as select * from table where 1=2; 复制表结构 【只不过没有主外键需要自己手动添加】
create table newtable as
select * from table; 复制表结构加数据【只不过没有主外键需要自己手动添加】
1)如果两个表的表结构是否相同,但要插入的字段类型相同:
a.
把A表的全部字段数据插入到B表中:
insert
into B select * from A;
b. 把A表中某些字段的数据插入B表中:
insert into B(字段名)(select 字段名 from A)