在项目中需要将SQL2005中的数据同步到Oracle9i中,但是在操作过程中出现一个很奇怪的问题,操作如下:
1.安装Oracle客户端
2.在SQL2005中创建链接数据库,语句如下:
/****** 对象: LinkedServer [ORCL] 脚本日期: 02/26/2009 16:01:36 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'ORCL2', @srvproduct=N'ORACLE', @provider=N'MSDAORA', @datasrc=N'ORCL'
/* ORCL2是链接服务器名称,ORACLE是产品名称,MSDAORA是驱动,ORCL是数据源*/
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORCL2',@useself=N'False',@locallogin=NULL,@rmtuser=N'test',@rmtpassword='########'
/* ORCL2是链接服务器名称,test是Oracle库的用户名,########是密码*/
3.使用OPENQUERY语句向链接服务器中表插入数据,如下:
INSERT OPENQUERY (ORCL2, 'SELECT * from abcd')
select a,b,c from test;
在以上过程中发现如果Oracle数据库中有字段为Varchar2或nvarchar2且长度大于255,SQL发生严重错误且导致Oracle库的用户帐号列锁。后来分别改用SQL2000+Oracle9i和SQL2005+Oracle10G进行测试都没有以上问题,一切正常。对于SQL2005+Oracle9i发生以上问题仍然觉得很困惑!!!