1、准备工作
A、在SQLServer数据库所在服务器须安装Oracle客户端,客户端版本不低于Oracle数据库版本;
B、在SQL Server数据库所在服务器安装Oracle Client,配置Oracle Net Manager(与Oracle所在服务器配置相同),如下图:
C、测试配置是否成功,使用SQLPLUS命令行窗口登录,如果能够登录成功说明配置正确;
命令说明:Username/Password@Connect_identifier
2、建数据库和相应的表格(例:新建表TXF000HGB01): A、获取Oracle栏位信息
B、新建表
(注:Oracle相应的栏位的数据类型需要转化为SQL对应的数据类型,如oracle的varchar2类型对应SQL的varchar类型,number类型对于numeric类型)
新建表TXF000HGB01命令 USE [LHERP] GO
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
SET ANSI_PADDING ON GO
CREATE TABLE [dbo].[TXF000HGB01](
CO VARCHAR(6) NOT NULL, DTID VARCHAR(4) NOT NULL, VHNO VARCHAR(15) NOT NULL, ITM VARCHAR(7) NOT NULL, DTDAT VARCHAR(12) NOT NULL, NL VARCHAR(1) NOT NULL, PZID VARCHAR(3), TX VARCHAR(4) NOT NULL, STK VARCHAR(12) NOT NULL, DLMK VARCHAR(1), TRDLMK VARCHAR(1), ECMK VARCHAR(1), PI_STATUS char(1) NULL, DT datetime NULL, UPDT datetime NULL ) ON [PRIMARY] GO
SET ANSI_PADDING OFF GO
C、执行新建表命令,表创建成功。 3、建连接服务器(DBLINK): 设置OraOLEDB.Oracle属性允许进程内
A、新建连接服务器:
4、新建存储过程: USE [LHERP] GO
SET ANSI_NULLS ON GO
SET QUOTED_IDENTIFIER ON GO
ALTER PROCEDURE [dbo].[ERP_Pro]--@OUTCODE int,@OUTDT datetime,@OUTSTR varchar(100) AS BEGIN try
begin transaction
delete from TXF000HGB01;
insert into TXF000HGB01 select h.*, 0 PI_STATUS,convert(datetime,substring(TXDAT,1,8)+' '+substring(TXTM,1,2)+':'+substring(TXTM,3,2)+':'+substring(TXTM,5,2))as DT,GETDATE() as UPDT from openquery(ERP_LINK,'SELECT * FROM ERPQ. TXF000HGB01')h;
insert into OUTLOG(OUTDT,OUTSTR) values(GETDATE(),'Successful execution'); commit transaction; END try begin catch
RAISERROR (66666, -- Message id. 16, -- Severity, 1 -- State, ) ;
insert into OUTLOG(OUTCODE,OUTDT,OUTSTR) values(66666,GETDATE(),'Failed to execute'); return;
end catch;
5、新建作业:
6、设置作业步骤属性:
7、设置作业计划属性: 设置作业执行频率
8、执行存储过程; 9、执行作业。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务