谁能教下我,oracle 与access之间数据互导的方法,谢谢
我邮箱[email protected]
我邮箱[email protected]
解决方案 »
- 但是用./runcluvfy.sh 是都通过的...
- 客户端查询ORACLE数据库很慢,请高手帮忙看看
- 如何创建某个条件下的约束?
- 英雄救眉!varchar型的ok字符串,如何与varchar型的2700比较大小?
- 如何在Package中调用已定义的函数(function)?
- 这样的视图如何写?
- **********非常郁闷的问题,各位来看看****************
- 在“服务”中不能启动oracle问题
- 浆糊救急!!c++实现odbc问题-可多开散分贴
- 问题:从oracle中导出数据到文本文件的方法,(多种);
- pro*c一个游标嵌套问题,无法解决,望大家帮忙
- oracle连接数的问题
作者:曹飞 出处: yesky
Oracle9i中提供强大的迁移功能,可以从多种数据库向Oracle迁移数据。Oracle新发行的迁移工具提供了从Access2000向Oracle92010迁移的简便易行的解决方案,该方案克服了中文乱码问题和字符串被截断的问题,如下就是从Access2000向Oracle92010迁移的全过程。
一、到OTN下载最新版本的OMWB(Oracle Migration Workbench)并安装 到http://otn.Oracle.com/tech/migration/focusareas/Access.html 下载Oracle Migration Workbench Release 9.2.0.1.2 for Microsoft Windows 98/NT/2000/XP 和 从Access 2.0, 95, 97 or 2000 to 到Oracle平台迁移的插件,二者的最新版本都是92012。首先把OMWB安装到与Oracle不同的主目录中,然后安装Access插件到同一目录。 二、为迁移准备数据源 到OMWB主目录的\Omwb\msaccess_exporter目录下,打开omwb2000.mde文件,输入将要迁移的Access数据库文件和即将生成的针对数据库的XML描述文件,这时你回发现在与Access相同的路径下生成了一个同名的XML文件,打开这个文件,其中记录了Access数据库的表的列和关系、视图的定义。OMWB支持Access的中文表名和列名,但要注意在生成XML文件之前要先修改\Omwb\msAccess_exporter\schema.dtd文件,将首行的encoding="ISO-8859-1"修改为encoding="GBK",然后在通过打开omwb2000.mde文件为数据库生成XML文件,这时表名和列名就成功显示中文了,在迁移到Oracle之前,还要用同样方法修改生成的XML文件的编码为encoding="GBK"。 三、运行OMWB,执行迁移过程 运行OMWB,根据提示,输入Access数据库的描述文件,即上一步生成的XML文件,根据该文件为迁移生成数据源,该数据源包括表、索引、主键、关系和表验证规则。接下来生成Oracle模型,OMWB自动生成表空间和两个用户。数据源和目标数据模型都存储在Oracle的资料档案库里,该库由安装OMWB工具时系统提示生成。下一步就可以执行迁移过程了,还可以为迁移生成脚本程序。 四、解决中文字符被截断的问题 OMWB提供由数据源和目的的数据类型影射,修改该数据影射可以改变迁移目标的数据长度和类型,但我尝试多次也没能解决这个问题,包括在OMWB读取XML文件生成的Access模型中修改源数据类型也无济于事。问题在于Access本身。首先打开Access数据库,修改其数据表中的数据类型和长度,保存数据库后退出,再次为数据库生成XML描述,这时我们会发现XML文件的表列定义改变了,重新运行OMWB,为迁移生成源数据模型后,源模型和目标模型的数据类型和长度也自动改变了,之后的迁移过程即可正确迁移长中文字符串了。Oracle提供的企业管理器和应用服务器的web形式界面里存在几处相同的问题,修改资料档案库根本不能解决问题,这也算是Oracle数据库产品的图形界面工具的缺陷
有一个比较麻烦但保证成功的方法。 1、在本地创建一个Access数据库,将Excel数据先导入到Access.可直接导入点击鼠标右键,选择导入,文件类型选择要导入的Excel文件,也可通过创建宏用TransferSpreadsheet函数实现。 2、在本地创建ODBC,链接oracle数据库。将oracle中需要导入数据的表以链接表的方式在本地Access中创建(千万不要使用导入表)。 3、在Access数据库中创建插入查询将导入好的Excel数据导入到oracle中。
利用SQL*Loader将 Excel 数据导出到 Oracle 数据库中
系统环境:
1、操作系统:Windows 2000 Server,机器内存128M
2、数据库: Oracle 8i R2 (8.1.6) for NT 企业版
3、安装路径:C:\ORACLE实现步骤:
1、打开MicroSoft Excel 20002、文件(F)→新建(N)→工作簿→3、输入以下数据,存盘为test.xls文件(F)→另存为(A)→ 保存类型为:制表符分隔,起名为text.txt,保存到C:\
5、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager 创建表结构
SQL> create table test
(
id number, --序号
username varchar2(10), --用户名
password varchar2(10), --密码
sj varchar2(20) --建立日期
);6、创建SQL*Loader输入数据所需要的文件,均保存到C:\,用记事本编辑:
控制文件:input.ctl,内容如下: load data --1、控制文件标识
infile 'test.txt' --2、要输入的数据文件名为test.txt
append into table test --3、向表test中追加记录
fields terminated by X'09' --4、字段终止于X'09',是一个制表符(TAB)
(id,username,password,sj) -----定义列对应顺序a、insert,为缺省方式,在数据装载开始时要求表为空
b、append,在表中追加新记录
c、replace,删除旧记录,替换成新装载的记录
d、truncate,同上7、在DOS窗口下使用SQL*Loader命令实现数据的输入C:\>sqlldr userid=system/manager control=input.ctl 默认日志文件名为:input.log
默认坏记录文件为:input.bad8、连接到SQL*Plus中,查看是否成功输入1、打开MicroSoft Access 20002、文件(F)→新建(N)→数据库→起名为test.mdb→创建3、用鼠标左键单击“使用设计器创建表”,输入以下字段,
字段A5设置成主键,存盘为test表,
注:Oracle中,所有对象的名称都是以大写字母保存的,
所以,如果Access的字段中含有小写字母,会出现错误
如果表名为小写字母,则可以成功导入。
4、在test表中输入一些记录
5、连入SQL*Plus
以system/manager用户登录,
SQL> conn system/manager 创建新的用户:如user1/pass1,赋予connect,resource权限。
SQL> grant connect,resource to user1 identified by pass1; Oracle数据库的实例名,本例:oradb
Oracle用户名,本例:user1
确认Oracle实例、TNSListener服务都已启动成功6、配置ODBC:开始→设置→控制面板→管理工具→数据源(ODBC)→
添加一个系统DSN:
数据源名称(自己设,好记就行如:aaa)
服务名称(Oracle主机字符串:oradb)
用户名称(Oracle用户名:如user1) tnsnames.ora文件中
ORADB =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.1.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = oradb)
)
)7、导出记录
在test表上单击鼠标右键→导出→保存类型为ODBC databases()→
输入目标表的名称→
(可以使用默认的相同表名,但要注意改成大写,否则在Oracle中操作此表时,需要用双引号括起表名)
选择ODBC源(aaa)→确定→
输入user1用户的密码(pass1)→OK→
8、连接到SQL*Plus中