数据库中导入一个同名有数据的表,会有问题吗

数据库中导入一个同名有数据的表,会有问题吗,第1张

如果你一表包含一个lob类型的列如果存在一个与这个表同名的同义词那么在导入这个表的数据时会报ora-01403错:

在oracle10g中的测试情况如下:

1.创建两个用户test和cs

idle>conn sys/zzh_2046@jy_1 as sysdba

已连接。

sys@JINGYONG>grant dba to test identified by test

授权成功。

sys@JINGYONG>grant dba to cs identified by cs

授权成功。

2.在用户test中创建一个有clob类型的列的表emp并向表中插入几行记录

sys@JINGYONG>conn test/test@jy_1

已连接。

test@JINGYONG>create table emp (col_a number, col_b varchar2(3), c_lob clob)

表已创建。

test@JINGYONG>

test@JINGYONG>INSERT INTO EMP VALUES (180, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (181, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (182, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (183, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (184, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (185, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>commit

提交完成。

连接到用户cs并创建一个同义词叫EMP

1.创建同义词EMP是使用test.emp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG>conn cs/cs@jy_1

已连接。

cs@JINGYONG>create synonym EMP for test.EMP

同义词已创建。

cs@JINGYONG>commit

提交完成。

cs@JINGYONG>

C:\Documents and Settings\Administrator>exp test/test@jy_1 file=f:\emp.dmp table

s=EMP

Export: Release 10.2.0.1.0 - Production on 星期四 12月 19 22:00:15 2013

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 字符集

即将导出指定的表通过常规路径...

. . 正在导出表 EMP导出了 6 行

成功终止导出, 没有出现警告。

C:\Documents and Settings\Administrator>imp cs/cs@jy_1 file=f:\emp.dmp tables=EM

P ignore=y

Import: Release 10.2.0.1.0 - Production on 星期四 12月 19 22:01:48 2013

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 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 TEST 的对象导入到 CS

. 正在将 TEST 的对象导入到 CS

. . 正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: no data found导入了 6 行

成功终止导入, 但出现警告。

2.使用表t1来创建同义词EMP

cs@JINGYONG>create synonym EMP for sys.t1

同义词已创建。

cs@JINGYONG>drop table emp

drop table emp

*

第 1 行出现错误:

ORA-00942: 表或视图不存在

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=

EMP ignore=y

Import: Release 10.2.0.1.0 - Production on 星期五 12月 20 08:13:07 2013

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

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 TEST 的对象导入到 CS

. 正在将 TEST 的对象导入到 CS

. . 正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: 未找到任何数据

IMP-00058: 遇到 ORACLE 错误 904

ORA-00904: "C_LOB": 标识符无效

成功终止导入, 但出现警告。

11g的测试

1.创建两个用户test和cs

idle>conn sys/zzh_2046@jy_201 as sysdba

已连接。

sys@JINGYONG>grant dba to test identified by test

授权成功。

sys@JINGYONG>grant dba to cs identified by cs

2.在用户test中创建一个有clob类型的列的表emp并向表中插入几行记录

sys@JINGYONG>conn test/test@jy_201

已连接。

test@JINGYONG>create table emp (col_a number, col_b varchar2(3), c_lob clob)

表已创建。

test@JINGYONG>

test@JINGYONG>INSERT INTO EMP VALUES (180, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (181, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (182, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (183, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (184, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>INSERT INTO EMP VALUES (185, 'a', '01010101010101')

已创建 1 行。

test@JINGYONG>commit

提交完成。

连接到用户cs并创建一个同义词叫EMP

1.创建同义词EMP是使用test.emp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG>conn cs/cs@jy_201

已连接。

cs@JINGYONG>create synonym EMP for test.EMP

同义词已创建。

cs@JINGYONG>commit

提交完成。

cs@JINGYONG>

使用10g的客户端连接到11g的数据库进行导出 *** 作

C:\Documents and Settings\Administrator>exp test/test@jy_201 file=f:\emp.dmp tab

les=EMP

Export: Release 10.2.0.1.0 - Production on 星期四 12月 19 22:10:28 2013

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

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的表通过常规路径...

. . 正在导出表 EMP导出了 6 行

成功终止导出, 没有出现警告。

使用10g的客户端连接到11g的数据库进行导入 *** 作也会报ora-01403错误

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=

EMP ignore=y

Import: Release 10.2.0.1.0 - Production on 星期四 12月 19 22:11:27 2013

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

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 TEST 的对象导入到 CS

. 正在将 TEST 的对象导入到 CS

. . 正在导入表 "EMP"

IMP-00058: 遇到 ORACLE 错误 1403

ORA-01403: 未找到任何数据导入了 6 行

成功终止导入, 但出现警告。

使用11g的客户端连接到11g的数据库进行导出 *** 作

[oracle@jingyong ~]$ exp test/test file=/home/oracle/emp.dmp tables=EMP

Export: Release 11.2.0.1.0 - Production on Sat Dec 7 01:41:44 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path ...

. . exporting tableEMP 12 rows exported

Export terminated successfully without warnings.

使用11g的客户端连接到11g的数据库进行导出 *** 作在有与导入表同名的同义词的情况下不会报ora-01403错误.

[oracle@jingyong ~]$ imp cs/cs file=/home/oracle/emp.dmp tables=EMP ignore=y

Import: Release 11.2.0.1.0 - Production on Sat Dec 7 01:42:20 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V11.02.00 via conventional path

Warning: the objects were exported by TEST, not by you

import done in ZHS16GBK character set and AL16UTF16 NCHAR character set

. importing TEST's objects into CS

. importing TEST's objects into CS

. . importing table "EMP" 12 rows imported

Import terminated successfully without warnings.

[oracle@jingyong ~]$

下面删除与表同名的同义词而且使用10g的客户端连接11g数据库进行导入 *** 作也是不会报ora-01403错误的

C:\Documents and Settings\Administrator>sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on 星期五 12月 20 07:51:34 2013

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

idle>conn cs/cs@jy_1

已连接。

cs@JINGYONG>drop synonym EMP

同义词已删除。

C:\Documents and Settings\Administrator>imp cs/cs@jy_201 file=f:\emp.dmp tables=

EMP ignore=y

Import: Release 10.2.0.1.0 - Production on 星期五 12月 20 09:02:40 2013

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

连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

经由常规路径由 EXPORT:V10.02.01 创建的导出文件

警告: 这些对象由 TEST 导出, 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入

. 正在将 TEST 的对象导入到 CS

. 正在将 TEST 的对象导入到 CS

. . 正在导入表 "EMP"导入了 6 行

成功终止导入, 没有出现警告。

出现这个问题的原因:

是因为bug 7422758 IMPORTING A TABLE WITH A BLOB OR CLOB USING A SYNONYM CAUSES ORA-1403, fixed with 11.2.

解决方法:

1. 升级到11.2.

2. 打7422758补钉

注意:

在oracle11gr2版本中如果在对某个用户导入某个表时,而这个表有一个lob类型的列且这个用户存一个与要导入表同名的同义词,在这种情况下使用oracle11gr2版本的客户端进行导出再导入是不会报ora-01403错误.如果使用oracle11gr2版本以下的客户端进行导出和导入也是会报ora-01403错误的.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26015009/viewspace-1063849/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26015009/viewspace-1063849/

文章知识点与官方知识档案匹配

MySQL入门技能树数据库组成表

29483 人正在系统学习中

点击阅读全文

打开CSDN,阅读体验更佳

最新发布 oracle触发器ora01403,Oracle常见错误:ORA-01403 的根本原因和解决方案

Oracle常见错误:ORA-01403ORA-06512: 在 "MALL.PUB_YANG_LOGON_ORGAN", line 88ORA-06512: 在 line 1at com.yangcq.flow.processflow.ProcessflowFunction.execute(ProcessflowFunction.java:102)at com.opensymphony.work...

继续访问

oracle导入dmp文件数据不全,Oracle dmp文件损坏恢复案例

前一段时间帮一个朋友的朋友恢复了一个损坏的dmp文件,大概100多个G,记录一下恢复过程并简单总结一下一、描述这个dmp文件是从一个Oracle 9i的数据库上exp出来的,在导入Oracle 11g版本的时候,可能会随机出现两类错误,如下(1)dmp文件导入的时候,一直停留在某张表上不动,两三天都是这样,导入 *** 作无法进行,如下导入了 0 行. . 正在导入表 "D_xxxxxx". . 正在导入...

继续访问

热门推荐 Oracle常见错误:ORA-01403 的根本原因和解决方案

Oracle常见错误:ORA-01403 的根本原因和解决方案 根本原因:SELECT语句查询出来的结果为空,此时把查询出来的空值赋给2个变量,就出现了上面这个错误。ORA-01403: 未找到任何数据,报这个错误 通常都是SELECT INTO 语句查询结果为空的原因。这个报错是我们在使用PL/SQL进行调试时,经常遇到的一个问题。 解决方案:查看一下是不是数据的问题,导致查询结果为空。

继续访问

Oracle 导入 IMP-00058错误及其他

oracle cmd 下面 导入 exp 导出 imp *** 作

继续访问

IMP-00058: 遇到 ORACLE 错误 12592 TNS包错误 解决办法

问题描述: 服务器A-DB、服务器B-DB都是Redhat6.6+oracle11.2.0.4环境,应用中间件服务器A-mid、A-mid是windows server2008 r2。 生产库服务器A-DB中导出test.dmp全库文件,在B-mid上试图通过imp命令向服务器B-DB导入test.dmp文件。 报错如下: IMP-00058: 遇到 ORACLE 错误 1

继续访问

oracle导入.DMP_IMP-00058.ORA-03135解决办法

错误如下图:

继续访问

oracle存储过程中ORA-01403: 未找到数据 问题解决方法

错误提示:ORA-01403: 未找到数据产生原因:当查询不到数据时,且把查询结果注入到定义的变量里面解决方法:1.跳出此次存储过程: 可以写个错误提示: when not_data_found then --后面一般接错误的数据提示消息2.不跳出存储过程: 由于错误的根本原因是数据不存...

继续访问

oracle11G 导出,导入10G报错信息

[code="log"] Import started on 2015/4/25 9:47:43 C:\oracle\product\10.2.0\db_1\bin\imp.exe log=C:\Users\ADMINI~1\AppData\Local\Temp\plsimp.log file=G:\cms\xmdscms.dmp userid=cms/123456@ORCL buffer...

继续访问

EBS开发中,FORM上传编译运行,出现ORA-01403:未找到任何数据的错误提示!

EBS开发中,FORM上传编译运行,出现ORA-01403:未找到任何数据的错误提示! 错误界面如

继续访问

Oracle dmp文件损坏恢复案例

前一段时间帮一个朋友的朋友恢复了一个损坏的dmp文件,大概100多个G,记录一下恢复过程并简单总结一下

继续访问

2020-09-08

ES6的模块化 (1) export 导出 {} {}不是对象,可以同时导出多次 let a = 1let b = 2export{a}export{b}等价于 export{a,b} (2) export default {} {}内是对象,只能导出一次 let a = 1let b = 2export{a,b}; 不管export default导出的是什么,导入的时候都可以使用任意一个变量 (3) import 导入 由于nodejs不支持E

继续访问

Oracle导入数据到指定用户时遇到IMP-00058: 遇到 ORACLE 错误 12154 ORA-12154: TNS: 无法解析指定的连接标识符 IMP-00000: 未成功终止导入

在网上看见一个帖子说是导入本地数据不用加 @ ,试了一下果然有效。 修改后为: 最后输入正确的用户名、密码,导入开始。

继续访问

Oracle Stream ORA-01403 错误的解决

Oracle stream 01403

继续访问

IMP-00058: 遇到 ORACLE 错误 12154

IMP-00058: 遇到 ORACLE 错误 12154 解决方法:开始以为是 file的路径错误 后来在远程桌面导入数据便可以了!

继续访问

ORACLE导入遇到ORACLE错误959解决方法

今天在导入数据库文件时,有一张表未导入成功,报了如下错误: IMP-00003: 遇到 ORACLE 错误 959 ORA-00959: 表空间 'XXXXXXXXXXX' 不存在。查询的确没有对应的表空间:select * from dba_data_files where tablespace_name = 'XXXX'添加上对应的表空间,再重新导入:create tablespace ts_s

数据库' CAPROGRAM FILESWMICROsOFT SQL SERVERWMSsQL15.MSsQLSERVERVMSsQLDATAVFFo。无法打开MDF,因为它是版本904。此服务器支持版本852及更早。无法打开新的数据库CPROGRAM FLESWICRosOFT SQL SERVERWMSSQL15.MSSQLSERVERWMSSQLIDATAVFFO。MDF创建数据库被终止。试图为文件CAProgram FileslMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLIDATA附加一个自动命名的数据库。mdf失败了。存在同名的数据库,或无法打开指定的文件,或位于UNC共享上。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10658917.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存