环境:win2k server ,sql server 2000 ,已安装oralce客户端并配置好orcle服务名;oracle 只有一个查询权限的用户。oracle 表结构:
tb1(aa,bb,cc,dd)sqlserver表结构:
tb2(id,aa,cc,dd) id为自动增长,aa,cc,dd字段与oracle表中字段对应,类型一致;从oracle中提取 select aa,cc,dd from tb1 where bb>=sysdate-1 (提取当前日期前一天产生的数据)
判断tb1.aa等于tb2.aa的值是否已存在,如果不存在,插入此记录到tb2中;如果存在,则更新此条记录cc,dd字段的值。每天有若干个类似以上要求的表需要更新,请各位指点,谢谢!
tb1(aa,bb,cc,dd)sqlserver表结构:
tb2(id,aa,cc,dd) id为自动增长,aa,cc,dd字段与oracle表中字段对应,类型一致;从oracle中提取 select aa,cc,dd from tb1 where bb>=sysdate-1 (提取当前日期前一天产生的数据)
判断tb1.aa等于tb2.aa的值是否已存在,如果不存在,插入此记录到tb2中;如果存在,则更新此条记录cc,dd字段的值。每天有若干个类似以上要求的表需要更新,请各位指点,谢谢!
--管理
--SQL Server代理
--右键作业
--新建作业
--"常规"项中输入作业名称
--"步骤"项
--新建
--"步骤名"中输入步骤名
--"类型"中选择"Transact-SQL 脚本(TSQL)"
--"数据库"选择执行命令的数据库
--"命令"中输入要执行的语句:
EXEC 存储过程名 ... --该存储过程用于创建表 --确定
--"调度"项
--新建调度
--"名称"中输入调度名称
--"调度类型"中选择你的作业执行安排
--如果选择"反复出现"
--点"更改"来设置你的时间安排
然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法:
我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
好像SQL没有提供这样的功能
DB有提供这样的功能
1、速度很慢,一个简单的查询都要好几分钟
2、似乎oracle的语法无效了,要用sqlserver的语法?如to_date、sysdate都提示不可识别的函数,而却能用top
GO
-- To use named parameters:
EXEC sp_addlinkedserver
@server = 'LONDON Mktg',
@srvproduct = 'Oracle',
@provider = 'MSDAORA',
@datasrc = 'MyServer'
GO
-- OR to use no named parameters:
USE master
GO
EXEC sp_addlinkedserver
'LONDON Mktg',
'Oracle',
'MSDAORA',
'MyServer'
GO