十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
我知道的有三种方法:\x0d\x0a1、如果数据量不大且没有大对象(图片,文件什么的)且使用pl/sql developer做oracle管理工具的话,可以直接复制粘贴,操作方法是先按照列的先后顺序把EXCEL中数据排好,在第一个字段前面加一空白列(这部很重要,否则字段就会不对应了),pl/sql developer中执行下select * from 表名 for update,使得你的表可以编辑,然后点一下像锁一样的那个图标(鼠标放上去会显示编辑数据四个字),复制excel中的数据(包括空白列),最后直接在表中空白行的地方粘贴就行了,操作很简单。\x0d\x0a2、使用外部程序编程实现,如c#,java,以c#为例,先将excel解析成datatable,然后逐行遍历入库即可。\x0d\x0a3、使用工具XlsToOra.exe,只要配置一下登陆进去后,设置一下导入的表名,列与excel中列的对应关系就可以导入了。\x0d\x0a4、可以将excel转换成csv文件再利用文本导入器(工具-文本导入器)导入即可。\x0d\x0a以上是个人使用过的一些方法, 难免有不完美之处,欢迎指正探讨^_^
潮安网站建设公司创新互联公司,潮安网站设计制作,有大型网站制作公司丰富经验。已为潮安1000多家提供企业网站建设服务。企业网站搭建\成都外贸网站制作要多少钱,请找那个售后服务好的潮安做网站的公司定做!
1、 运行MySQL Migration Toolkit,一路“Next”到“Source Database”,在Database System中选择Oracle Database Server,如果第一次使用会告之要求加载驱动程序ojdbc14.jar。
加载驱动程序之后,界面将变成如下的形式,在其中填写Oracle数据库的连接信息,按“Next”继续。
2、 在Target Database中默认Database System为MySQL Server,在Connection Parameters中填写相应的MySQL数据库的连接信息,按“Next”继续。
3、进行数据库连接测试,测试通过后按“Next”到Source Schemata Selection,点选准备进行数据迁移的Schemata后按“Next”继续。
4、在Object Type Selection,点Detailed selection按钮,在下方左侧列表中选择不进行迁移的表,将其放入右侧列表中,即左侧列表剩余的表都将进行数据迁移。选择好之后按“Next”继续。
5、
在Object Mapping的Migration of type Oracle Schema,如果要设置参数,点Set
Parameter按钮。如果默认数据库表为UTF8的话,则选择Multilanguage;如果默认数据库表为GBK的话,则需要选择User
defined,并在下方填写charset=gbk, collation=gbk_general_ci。Migration of type
Oracle Table中要设置参数点Set Parameter按钮。如果默认数据库表为UTF8的话,则选择Data
consistency/multilanguage;如果默认数据库表为GBK的话,则需要选择User
defined,并在下方填写addAutoincrement=yes, charset=gbk,
collation=gbk_general_ci, engine=INNODB。选择好之后按“Next”继续。
6、再到Manual
Editing,在这里可以修改建表脚本。由于Oracle与MySQL之间语法规则的差异,通常需要对脚本的数据类型以及默认值进行调整,比如
Oracle中通常会对Timestamp类型的数据设置默认值sysdate,但在MySQL中是不能识别的。在Filter中选择Show All
Objects,然后在Migrated
Objects中选择要修改脚本的表,再点击左下方的Advanced就可以进行脚本编辑了。修改完之后点击右侧Apply
Changes按钮保存,按“Next”继续。
7、然后一路“Next”,如果没有提示出错的话,就可以将指定表中的数据导入MySQL了。如果有提示出错信息,则需要返回到Manual Editing处对脚本重新进行修改。
需
要补充一点,在导大容量数据特别是CLOB数据时,可能会出现异常:“Packets larger than max_allowed_packet
are not
allowed”。这是由于MySQL数据库有一个系统参数max_allowed_packet,其默认值为1048576(1M),可以通过如下语句
在数据库中查询其值:
show VARIABLES like '%max_allowed_packet%';
修改此参数的方法是在mysql文件夹找到my.ini文件,在my.ini文件[mysqld]中添加一行:
max_allowed_packet=16777216
重启MySQL,这样将可以导入不大于16M的数据了,当然这数值可以根据需要作调整。
用专用的SQL语句,或者用第三方工具。
方法一、使用SQL*Loader
这个是用的较多的方法,前提必须oracle数据中目的表已经存在。大体步骤如下:
1、将excel文件另存为一个新文件比如文件名为text.txt,文件类型选文本文件(制表符分隔),这里选择类型为csv(逗号分隔)也行,但是在写后面的control.ctl时要将字段终止符改为','(fields
terminated
by
','),假设保存到c盘根目录。
2
、如果没有存在的表结构,则创建,假设表为test,有两列为dm,ms。
3、用记事本创建SQL*Loader控制文件,网上说的文件名后缀为ctl,其实我自己发现就用txt后缀也行。比如命名为control.ctl,内容如下:(--后面的为注释,实际不需要)
load
data
--控制文件标识
infile
'c:\text.txt'
--要输入的数据文件名为test.txt
append
into
table
test
--向表test中追加记录
fields
terminated
by
X'09'
--字段终止于X'09',是一个制表符(TAB)
(dm,ms)
--定义列对应顺序
备注:数据导入的方式上例中用的append,有以下几种:insert,为缺省方式,在数据装载开始时要求表为空;append,在表中追加新记录;replace,删除旧记录,替换成新装载的记录;truncate,同replace。
4、在命令行提示符下使用SQL*Loader命令实现数据的输入。
sqlldr
userid=system/manager
control='c:\control.ctl'
我给你一些数据库常用的导入导出命令吧:\x0d\x0a该命令在“开始菜单运行CMD”中执行\x0d\x0a一、数据导出(exp.exe)\x0d\x0a1、将数据库orcl完全导出,用户名system,密码accp,导出到d:\daochu.dmp文件中\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、将数据库orcl中scott用户的对象导出\x0d\x0aexp scott/accp@orcl file=d:\daochu.dmp owner=(scott)\x0d\x0a\x0d\x0a3、将数据库orcl中的scott用户的表emp、dept导出\x0d\x0aexp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)\x0d\x0a\x0d\x0a4、将数据库orcl中的表空间testSpace导出\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)\x0d\x0a\x0d\x0a二、数据导入(imp.exe)\x0d\x0a1、将d:\daochu.dmp 中的数据导入 orcl数据库中。\x0d\x0aimp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、如果导入时,数据表已经存在,将报错,对该表不会进行导入;加上ignore=y即可,表示忽略现有表,在现有表上追加记录。\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y\x0d\x0a\x0d\x0a3、将d:\daochu.dmp中的表emp导入\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp tables=(emp)
用sqlserver2000自带的导入导出数据工具,将access表中的数据导入到oracle中去下面是我在一个人的博客中找到的注意事项,你可以看一看1.导入的时候access中的表名必须是大写的,否则导进去之后,因为sqlplus运行到后台的时候会把所有字符自动变为大写,而oracle大小写敏感,所以生成的小写表无法访问,你用toad或DBARtsion也是白搭2.表中的字段名称比如user之类的改进改名,很有可能就会因为这个卡掉,得重新导3.注意数据库中的数据,有可能会出现因为数据导致导入一半后卡住,出现这种问题的时候多半是因为备注转化为的对象类型不对4.ACCESS中的备注问题,这个是个头疼的问题,真tm头疼,刚开始我用OLE DB方式连接数据库,备注默认转化的oracle数据类型为LONG,但是TNND每张oracle表中最多只有一个LONG类型的字段,(古怪的规定~!我找了半天没找到原因),琢磨了半天后决定舍弃(当初选OLE DB是受页面里面OLE DB连接比ODBC连接先进点的观点影响。。),改用ODBC,这里连接数据库的时候有几种方法,我选的是用定义好的文件来连接,在生成文件的时候一定要注意,用户名和密码必须是大写的,不然的时候你就等着哭吧,然后配连接好的,执行导入,我第一遍的时候就相当成功,但是后来因为插错数据和表格,又懒的删只好删掉用户重新导,一模一样的数据,就是用户名变了,nnd就报了n多错误,备注自动生成的方式是CLOB,我们ACCESS数据库表中还有个OLE对象类型的,自动转化为BLOB类型,在页面上不能直接用通俗的方法获取rs读CLOB,要是这样写,一准报错,这个问题一直没解决。。从网上找了些资料,有种说将对象分割拿出来,但太麻烦了,能生成一个完整的结果集就不错了。。还有迭代,我们哥俩商量了半天准备用VARCHAR2(2000)替代,结果页面报错。