2010-08-03 1305 views
0

我得到一个dmp并安装Oracle XE进行开发。但是,当我使用imp导入时,跳过了创建表语句。任何人都可以在这个问题上提供帮助。Oracle imp dmp文件,跳过创建表语句

屏幕输出被捕获如下:非常感谢!


C:\Documents and Settings\wong\Desktop>imp 

Import: Release 10.2.0.1.0 - Production on Mon Aug 2 22:48:32 2010 

Copyright (c) 1982, 2005, Oracle. All rights reserved. 

Username: report 

密码:

Connected to: Oracle Database 10g Express Edition Release 10.2.0.1.0 - Productio n 

Import file: EXPDAT.DMP > report20100524.dmp 

Enter insert buffer size (minimum is 8192) 30720> 30720 

Export file created by EXPORT:V10.01.00 via conventional path import done in ZHS16GBK character set and AL16UTF16 NCHAR character set import server uses WE8MSWIN1252 character set (possible charset conversion) List contents of import file only (yes/no): no > yes 

Import entire export file (yes/no): no 
> yes 

. importing REPORT's objects into REPORT "BEGIN " "sys.dbms_logrep_imp.instantiate_schema(schema_name=>'REPORT', export_db_na" "me=>'SPACESAT', inst_scn=>'650909');" "COMMIT; END;" "CREATE TABLE "BASE_COUNTRY" ("IN_CODE" VARCHAR2(60) NOT NULL ENABLE, "OUTCO" "DE" VARCHAR2(60), "OUTNAME" VARCHAR2(60), "LEVELID" NUMBER(1, 0), "IS_LEAF"" " NUMBER(1, 0), "SX" VARCHAR2(10), "PHONE" VARCHAR2(20), "TIMEX" NUMBER(2, 0" ")) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FRE" "ELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING " "NOCOMPRESS" . . skipping table "BASE_COUNTRY" 


.... many tables skipped... 


"CREATE UNIQUE INDEX "XF_TC_FLOOR_U1" ON "XF_TC_FLOOR" ("XF_FLOOR" , "XF_GSI" "D") PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 " "FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "USERS" LOGGING" "CREATE TRIGGER "YREPORT".xf_tc_floor_insupd BEFORE INSERT OR UPDATE" " ON xf_tc_floor" " FOR EACH ROW" " BEGIN" " :new.xf_lastmodtime := sysdate;" " :new.xf_lastuploadtime := sysdate;" " END xf_tc_floor_insupd" ";" "ALTER TRIGGER "XF_TC_FLOOR_INSUPD" ENABLE" mport terminated successfully without warnings. 

C:\Documents and Settings\wong\Desktop> 
+0

您已经使用“...跳过很多表格.​​.....”编辑了调试输出中最重要的部分!它报告什么错误,如果有的话? – 2010-08-03 04:26:07

+0

没有错误码显示 – actionscript3 2010-08-04 16:36:21

回答

1

您使用的是仅通过进口报告所拥有的对象的IMP。其他模式拥有的表/索引等不会被导入(主要是因为REPORT很可能无法在这些模式中创建表)。

您可以查看FROMUSER/TOUSER命令行参数,但您可能还需要使用特权用户进行导入。

0

这可能是由于Oracle XE(Express即免费版本)的限制。特别是只有一个预定义的“用户”表空间和4GB的存储限制。

虽然这看起来不太严格,但表空间和“初始”存储大小嵌入在导出文件表定义中。如果您的导出系统指定了除用户以外的表空间或指定了累积超过4GB存储分配的“初始”存储分配,则导入将失败。所以除非导出文件是由另一个XE数据库创建的,否则可能会有问题。

您可以使用imp命令的-show选项捕获DDL(排序)。

您还可以编辑.imp文件以从DDL中删除“tablespace”和“initial”子句 - 但请确保先备份原始文件,因为您可以轻松地使文件不可读。

+0

谢谢,我打开dmp文件,发现如下: ys.dbms_logrep_imp.instantiate_schema(SCHEMA_NAME => '报告',export_db_name => 'SPACET',inst_scn => '650909'); 是否有关出口db名称的问题?我无法更改XE中的dbname,我可以吗? 感谢您的回复。 – actionscript3 2010-08-03 16:46:28