IMP同库Type对象导入报错ORA-02304
Type是我们经常使用的数据库对象结构。我们在实际中,可以单独定义type类型,之后在PL/SQL代码或者数据表中使用。 在一个偶然的机
Type是我们经常使用的数据库对象结构。我们在实际中,可以单独定义type类型,之后在PL/SQL代码或者数据表中使用。
在一个偶然的机会让笔者发现使用Type类型在数据exp/imp中的麻烦。当我们使用exp/imp工具进行同数据库实例(Instance)不同Schema之间数据拷贝时,如果Schema中有type类型,就会出现问题错误。
具体我们还是通过一系列的实验进行证明。
1、实验环境准备
我们使用10gR2作为实验数据库。
SQL> conn scott/tiger@ots;
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0
Connected as scott
SQL> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
我们首先将scott用户schema的所有对象导出。注意,当前scott下存在一些数据type对象。
SQL> select type_name, type_oid, typecode from user_types;
TYPE_NAME TYPE_OID TYPECODE
------------------------------ -------------------------------- ------------------------------
CUST_ADDRESS_TYPE_NEW 0239FC5ABD78464D8D6C4D7085E2F549 OBJECT
T_REC_TEST 428A1B3C7E1E4A3CB2063B93623693EA OBJECT
T_REC_TABLE D9AFD3FAE0A54964B1684CA28C69CEED COLLECTION
T_TYP 8E294AB7CC28493A94FF82791A376379 OBJECT
N_TYP 338172B836854BAB8C26D4C27B5908F1 OBJECT
在Oracle中,每一个type都会分配出唯一的oid编号,作为一种内部标志。下面,我们使用exp工具将scott用户对象导出。
D:\>exp scott/tiger@ots file=scott_20120606.dmp indexes=y rows=y compress=y cons
traints=y wner=scott
Export: Release 10.2.0.1.0 - Production on星期三6月6 17:22:16 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出ZHS16GBK字符集和AL16UTF16 NCHAR字符集
即将导出指定的用户...
.正在导出pre-schema过程对象和操作
.正在导出用户SCOTT的外部函数库名
.导出PUBLIC类型同义词
.正在导出专用类型同义词
.正在导出用户SCOTT的对象类型定义
(篇幅原因,部分省略……)
成功终止导出,没有出现警告。
D:\>
之后,我们创建同数据库用户scottback。
SQL> create user scottback identified by scottback;
User created
SQL> grant resource to scottback;
Grant succeeded
SQL> grant connect to scottback;
Grant succeeded
SQL> grant exp_full_database to scottback;
Grant succeeded
SQL> grant imp_full_database to scottback;
Grant succeeded
2、数据导入
当我们试图将数据导入到相同数据库时,出现报错。
D:\>imp scottback/scottback@ots file=scott_20120606.dmp indexes=y rows=y constra
ints=y ignore=y fromuser=scott touser=scottback
Import: Release 10.2.0.1.0 - Production on星期三6月6 17:34:21 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由EXPORT:V10.02.01创建的导出文件
警告:这些对象由SCOTT导出,而不是当前用户
已经完成ZHS16GBK字符集和AL16UTF16 NCHAR字符集中的导入
IMP-00017:由于ORACLE错误2304,以下语句失败:
"CREATE TYPE "T_REC_TEST" TIMESTAMP '2010-12-21:18:17:30' OID '428A1B3C7E1E4"
"A3CB2063B93623693EA' as object("
"id number);"
""
""
IMP-00003:遇到ORACLE错误2304
ORA-02304:无效的对象标识符文字
IMP-00017:由于ORACLE错误2304,以下语句失败:
"CREATE TYPE "T_REC_TABLE" TIMESTAMP '2010-12-21:18:17:33' OID 'D9AFD3FAE0A5"
"4964B1684CA28C69CEED' as table of t_rec_test;"
""
""
IMP-00003:遇到ORACLE错误2304
ORA-02304:无效的对象标识符文字
IMP-00017:由于ORACLE错误2304,以下语句失败:
"CREATE TYPE "T_TYP" TIMESTAMP '2012-03-07:10:47:03' OID '8E294AB7CC28493A94"
"FF82791A376379' as object (id number);"
""
""
IMP-00003:遇到ORACLE错误2304
ORA-02304:无效的对象标识符文字
IMP-00017:由于ORACLE错误2304,以下语句失败:
"CREATE TYPE "N_TYP" TIMESTAMP '2012-03-07:11:03:01' OID '338172B836854BAB8C"
"26D4C27B5908F1' as object (t_id number,t_name varchar2(10),t_addr varchar"
"2(20));"
""
""
IMP-00003:遇到ORACLE错误2304
ORA-02304:无效的对象标识符文字
IMP-00017:由于ORACLE错误2304,以下语句失败:
"CREATE TYPE "CUST_ADDRESS_TYPE_NEW" TIMESTAMP '2012-05-23:16:15:03' OID '02"
"39FC5ABD78464D8D6C4D7085E2F549' as object"
"(street_address varchar2"
"(40),"
"postal_code varchar2(10)"
",city varchar2(30)"
",state_province varchar2(10)"
",country_id char(2)"
");"
""
""
IMP-00003:遇到ORACLE错误2304
ORA-02304:无效的对象标识符文字
(篇幅原因,部分省略…..)
ORA-02270:此列列表的唯一或主键不匹配
即将启用约束条件...
成功终止导入,但出现警告。
从日志信息上,,我们看到在创建type类型变量的时候,Oracle报错2304。利用oerr工具,我们可以检查错误信息。
[oracle@bspdev ~]$ oerr ora 2304
02304, 00000, "invalid object identifier literal"
// *Cause: An attempt was made to enter an object identifier literal for
// CREATE TYPE that is either:
// - not a string of 32 hexadecimal characters
// - an object identifier that already identifies an existing
// object
// - an object identifier different from the original object
// identifier already assigned to the type
// *Action: Do not specify the object identifier clause or specify a 32
// hexadecimal-character object identifier literal that is unique
// or identical to the originally assigned object identifier. Then
// retry the operation.
从字面的情况看,是创建type的命令语句出现错误。从脚本的信息上,的确显示的script中创建type的语句是很特殊,中间有timestamp和oid信息。而且与原来schema中的相对应。

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 기사에서는 MySQL의 "공유 라이브러리를 열 수 없음"오류를 다룹니다. 이 문제는 MySQL이 필요한 공유 라이브러리 (.so/.dll 파일)를 찾을 수 없음에서 비롯됩니다. 솔루션은 시스템 패키지 M을 통한 라이브러리 설치 확인과 관련이 있습니다.

이 기사는 Docker에서 MySQL 메모리 사용을 최적화합니다. 모니터링 기술 (Docker Stats, Performance Schema, 외부 도구) 및 구성 전략에 대해 설명합니다. 여기에는 Docker 메모리 제한, 스와핑 및 CGroups와 함께 포함됩니다

이 기사는 MySQL의 Alter Table 문을 사용하여 열 추가/드롭 테이블/열 변경 및 열 데이터 유형 변경을 포함하여 테이블을 수정하는 것에 대해 설명합니다.

이 기사는 Linux에 MySQL을 직접 설치하는 것과 Phpmyadmin이없는 Podman 컨테이너 사용을 비교합니다. 각 방법에 대한 설치 단계에 대해 자세히 설명하면서 Podman의 격리, 이식성 및 재현성의 장점을 강조하지만 또한

이 기사는 자체 포함 된 서버리스 관계형 데이터베이스 인 SQLITE에 대한 포괄적 인 개요를 제공합니다. SQLITE의 장점 (단순성, 이식성, 사용 용이성) 및 단점 (동시성 제한, 확장 성 문제)에 대해 자세히 설명합니다. 기음

기사는 인증서 생성 및 확인을 포함하여 MySQL에 대한 SSL/TLS 암호화 구성에 대해 설명합니다. 주요 문제는 자체 서명 인증서의 보안 영향을 사용하는 것입니다. [문자 수 : 159]

이 안내서는 Homebrew를 사용하여 MacOS에 여러 MySQL 버전을 설치하고 관리하는 것을 보여줍니다. 홈 브루를 사용하여 설치를 분리하여 갈등을 방지하는 것을 강조합니다. 이 기사에는 설치, 서비스 시작/정지 서비스 및 Best Pra에 대해 자세히 설명합니다

기사는 MySQL Workbench 및 Phpmyadmin과 같은 인기있는 MySQL GUI 도구에 대해 논의하여 초보자 및 고급 사용자를위한 기능과 적합성을 비교합니다. [159 자].
