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

数据库中导入一个同名有数据的表,会有问题吗,第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是使用testemp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG> conn cs/cs@jy_1

已连接。

cs@JINGYONG> create synonym EMP for testEMP;

同义词已创建。

cs@JINGYONG> commit;

提交完成。

cs@JINGYONG>

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

s=EMP

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

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

连接到: Oracle Database 10g Enterprise Edition Release 102010 - 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:\empdmp tables=EM

P ignore=y

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

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

连接到: Oracle Database 10g Enterprise Edition Release 102010 - Production

With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 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 syst1;

同义词已创建。

cs@JINGYONG> drop table emp;

drop table emp

第 1 行出现错误:

ORA-00942: 表或视图不存在

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

EMP ignore=y

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

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

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

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

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 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是使用testemp表来创建(也可以用任意表来创建同义词EMP,只要保证同义词的名字与要导入表的名字相同就行)

test@JINGYONG> conn cs/cs@jy_201

已连接。

cs@JINGYONG> create synonym EMP for testEMP;

同义词已创建。

cs@JINGYONG> commit;

提交完成。

cs@JINGYONG>

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

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

les=EMP

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

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

连接到: Oracle Database 11g Enterprise Edition Release 112010 - 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:\empdmp tables=

EMP ignore=y

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

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

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

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

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 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/empdmp tables=EMP

Export: Release 112010 - 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 112010 - 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 table EMP 12 rows exported

Export terminated successfully without warnings

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

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

Import: Release 112010 - 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 112010 - Production

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

Export file created by EXPORT:V110200 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

SQLPlus: Release 102010 - 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:\empdmp tables=

EMP ignore=y

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

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

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

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

经由常规路径由 EXPORT:V100201 创建的导出文件

警告: 这些对象由 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 112

解决方法:

1 升级到112

2 打7422758补钉

注意:

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

来自 “ ITPUB博客 ” ,链接:>

数据库的配置文件在C:\Program Files\MySQL\MySQL Server 50\myini。

在data文件夹里找到不test的数据库文件夹和自己创建的文件夹是因为test数据库是空的数据库,用于测试使用,自己的文件夹需要去mysql数据库寻找。

mysql数据库文件默认存放位置:C:\Program Files\MySQL\MySQL Server 50\mysql。

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

下面详细介绍几个找不同数据库用到的命令:

1、选择你所创建的数据库

mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明 *** 作成功!)

2、:使用SHOW语句找出在服务器上当前存在什么数据库

mysql> SHOW DATABASES;

3、查看现在的数据库中存在什么表

mysql> SHOW TABLES;

4、显示表的结构。

mysql> DESCRIBE MYTABLE;

扩展资料:

mysql数据库服务器有三个数据库:information_schema数据库,mysql数据库,test数据库。

1、nformation_schema数据库:这个数据库保存了mysql服务器所有数据库的信息。比如数据库的名、数据库的表、访问权限、数据库表的数据类型,数据库索引的信息等等。就是关于这个数据库的点点滴滴信息都存储在这个数据库中。

nformation_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式。什么是元数据呢?元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等。有些时候用于表述该信息的其他术语包括“数据词典”和“系统目录”。

在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。

如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INFORMATION_SCHEMA中,有数个只读表。它们实际上是视图,而不是基本表,因此,将无法看到与之相关的任何文件。

2、mysql数据库:这个数据库中是mysql数据库中的所有的信息表。

这个是mysql的核心数据库,类似于sql server中的master表,主要负责存储数据库的用户、权限设置、关键字等mysql自己需要使用的控制和管理信息。不可以删除,如果对mysql不是很了解,也不要轻易修改这个数据库里面的表信息。

3、test数据库:空的数据库,用于测试用。

这个是安装时候创建的一个测试数据库,和它的名字一样,是一个完全的空数据库,没有任何表,可以删除。

参考资料:

百度百科-MySQL数据库

参考资料:

百度百科-mySQL

参考资料:

百度百科-test

1、mysql如果使用myisam存储引擎,数据库文件类型就包括frm、myd、myi,默认存放位置是c:\documents

and

settings\all

users\application

data\mysql\mysql

server

51\data

2、mysql如果使用innodb存储引擎,mysql数据库文件类型就包括frm、ibdata1、ibd,存放位置有两个,

frm文件默认存放位置是c:\documents

and

settings\all

users\application

data\mysql\mysql

server

51\data,

ibdata1、ibd文件默认存放位置是mysql安装目录下的data文件夹

在C:\Documents and Settings、目录下应该有个Sports Interactive目录,你查找一下就能找到,这个目录是存放你的存档文件和一些配置文件用的,这个目录下的Football Manager 2008目录下有个db目录,把你修改好的数据库复制到db下,然后重新开始新游戏(就是重新开档)就可以用了。(另外你也可以拷贝你的数据库到你的fm2008安装的目录下有个db目录里和初始的数据库放一个目录,也是可以的)

你修改的数据库只能在你新开档的时候才能用,(不重新开档是用不了修改的数据库的)

另外你初始的数据库是不能删除或被覆盖的,那样就不能开档了。

以上就是关于数据库中导入一个同名有数据的表,会有问题吗全部的内容,包括:数据库中导入一个同名有数据的表,会有问题吗、mysql数据库的存放位置在哪里、如何把文件存放在mysql数据库中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/sjk/10086288.html

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

发表评论

登录后才能评论

评论列表(0条)

保存