环境: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字段的值。每天有若干个类似以上要求的表需要更新,请各位指点,谢谢!

解决方案 »

  1.   

    定时作业的制定企业管理器 
    --管理 
    --SQL Server代理 
    --右键作业 
    --新建作业 
    --"常规"项中输入作业名称 
    --"步骤"项 
    --新建 
    --"步骤名"中输入步骤名 
    --"类型"中选择"Transact-SQL 脚本(TSQL)" 
    --"数据库"选择执行命令的数据库 
    --"命令"中输入要执行的语句: 
                           EXEC 存储过程名 ... --该存储过程用于创建表 --确定 
    --"调度"项 
    --新建调度 
    --"名称"中输入调度名称 
    --"调度类型"中选择你的作业执行安排 
    --如果选择"反复出现" 
    --点"更改"来设置你的时间安排  
    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行 设置方法: 
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定. 
      

  2.   

    不知道,
    好像SQL没有提供这样的功能
    DB有提供这样的功能
      

  3.   

    谢谢 潇洒老乌龟(爱新觉罗.毓华)!还有一个问题,要从oracle里取数,必须连接oracle,在存储过程里如何连接oracle?是用链接服务器吗?把oracle添加为链接服务器后,我在查询分析器里运行查询,发现两个问题:
    1、速度很慢,一个简单的查询都要好几分钟
    2、似乎oracle的语法无效了,要用sqlserver的语法?如to_date、sysdate都提示不可识别的函数,而却能用top
      

  4.   

    此示例创建一台名为 LONDON Mktg 的链接服务器,该服务器使用用于 Oracle 的 Microsoft OLE DB 提供程序,并且假设此 Oracle 数据库的 SQL*Net 别名为 MyServer。USE master
    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
      

  5.   

    谢谢!我使用了链接服务器之后,在查询分析器里运行普通的查询语句测试,可以运行,但就是速度特别慢,其它环境(如pb,asp)中几秒钟能得出结果的语句,在这里要几分钟才出结果!还仅仅是select ,还没有insert到sqlserver里,难道用链接服务器速度都这么慢吗?
      

  6.   

    select * from openquery(链接服务器的名称,oracle查询语句)