0029-Oracle10G新增加员工自动导入到SQL server2005设置方法
Oracle10G新增加员工自动导入到SQL server2005设置方法一、 在SQL server建立链接,连接到ORACLE1、 服务器对象à链接服务器à右键à新建链接服务器: 2、 在常规中输入对应参数: 3、在安全性中输入对应参数,点确定: 4、 点确定,生成链接服务器。对应的sql脚本是:/* 对象: LinkedServer LINK_ORACLE 脚本日期: 07/27/2011 22:03:38 */EXEC master.dbo.sp_addlinkedserver server = N'LINK_ORACLE', srvproduct=N'oracle', provider=N'OraOLEDB.Oracle', datasrc=N'strdb3', provstr=N'msdaora' /* For security reasons the linked server remote logins password is changed with # */EXEC master.dbo.sp_addlinkedsrvlogin rmtsrvname=N'LINK_ORACLE',useself=N'False',locallogin=NULL,rmtuser=N'jfp0524',rmtpassword='jfp0524'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'collation compatible', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'data access', optvalue=N'true'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'dist', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'pub', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'rpc', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'rpc out', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'sub', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'connect timeout', optvalue=N'0'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'collation name', optvalue=nullGOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'lazy schema validation', optvalue=N'false'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'query timeout', optvalue=N'0'GOEXEC master.dbo.sp_serveroption server=N'LINK_ORACLE', optname=N'use remote collation', optvalue=N'true'5、 在SQL server 查询oracle数据,有两种格式:select * from openquery(link_oracle,'select * from JFP0524.XEMPLOYEE') ;select * from link_oracle.JFP0524.XEMPLOYEE a WHERE a.employeeid='1444' 其中用户名和表名一定要大写,否则出错,JFP0524.XEMPLOYEE是正确的,jfp0524.XEMPLOYEE, JFP0524.xemployee 和jfp0524.xemployee都是错误的。二、 写存储过程,把Oracel员工表中的新员工写到SQL server 表中。举例:SQL server数据库名是kqsf,员工表是:CREATE TABLE dbo.UserInfo(userid varchar(50) NULL,username varchar(50) NULL) ON PRIMARY存储过程可以参考以下写法:CREATE PROCEDURE employeeFromOracleASBEGININSERT INTO dbo.userinfo ( userid, username )select employeeid,employeename from link_oracle.JFP0524.XEMPLOYEE a WHERE a.employeeid NOT IN (SELECT userid FROM userinfo) ;END三、 建维护计划,自动运行上面存储过程。1、 点管理à维护计划à新建维护计划:2、 输入维护计划名称,可以自己定义名称:3、 双击“执行T-SQL 语句”: 4、 双击输入exec kqsf.dbo.EmployeeFromOracle5、 点子计划右边图标6、 定义计划执行的频率和间隔7、 保存四、 注意事项1、 安装Oracle客户端时,不能选仅连接(第一个选项),否则访问接口不能出“Oracle provider for OLE DB”这个选项,而这个选项是必须的。2、 SQL server 代理必须要运行,虽然是用“维护计划”,但还是要用到作业来调度“维护计划”的子计划。如果SQL server 代理不能运行,则查看服务是否已经运行:还有SQL server 的协议是否已启用:五、 测试通过,设置结束。