谁给我个好的思路,我要定时从oracle数据库获取数据到SQL数据库。我现在是想,
1、在SQL里做导入导出数据向导,指定ORACLE数据库的数据为源,sql的为目的地。
2、然后把这个过程保存成SSIS包。
3、再把这个SSIS包做“定时作业”,指定它每天执行。但是现在这个第一步的,provide a source query,里输入的SQL语句,插入的SQL语句一直提示错误,做不下去了。
我写 select * from mytemptable  ,这个是可以执行的,mytemptable 是Oracle 数据库里的我要读取的表。
但是我改成 insert into tempTable ([name]) values (select [cola]  from mytemptable) 就出错了。
提示ORA-0098:缺少SELECT关键字 (System.Data.OracleClient)
谢谢各位了。

解决方案 »

  1.   

    insert into tempTable ([name]) select [cola]  from mytemptable
      

  2.   

    參考
    安装Oracle客户端程序并配置TNSNAME.ORA。   
        
      然后创建Oracle链接服务器:   
        
      1、创建链接服务器以访问   Oracle   数据库实例     
      确保运行   SQL   Server   的服务器上的   Oracle   客户端软件已达到提供程序所要求的级别。用于   Oracle   的   Microsoft   OLE   DB   提供程序要求   Oracle   客户端软件支持文件的版本为   7.3.3.4.0   或更高版本,并且   SQL*Net   的版本为   2.3.3.0.4。   
        
        
      2、在运行   SQL   Server   的服务器上创建指向   Oracle   数据库实例的   SQL*Net   别名。有关更多信息,请参见   Oracle   文档。   
        
        
      3、执行   sp_addlinkedserver   创建链接服务器,指定   MSDAORA   为   provider_name,指定用于   Oracle   数据库实例的   SQL*Net   别名为   data_   source。     
        
      以下示例假设已将一个   SQL*Net   别名定义为   OracleDB。   
        
      sp_addlinkedserver   'OrclDB',   'Oracle',   'MSDAORA',   'OracleDB'   
        
        
      4、使用   sp_addlinkedsrvlogin   创建从   SQL   Server   登录到   Oracle   登录的登录映射。     
      以下示例通过   Oracle   登录名   OrclUsr   和密码   OrclPwd   将   SQL   Server   登录   Joe   映射到步骤   3   中定义的链接服务器:   
        
      sp_addlinkedsrvlogin   'OrclDB',   false,   'Joe',   'OrclUsr',   'OrclPwd'
      

  3.   

    1楼,子陌红尘,的SQL语句,走了,一样的提示 缺少SELECT关键字 
    2楼,水族杰纶,你在写什么?我本机已经安装好ORACLE数据库了,而且链接也正常。因为我直接 select * from mytemptable   是没有报错的,还有,我在PL/SQL里,新建表,插入表(都是写标准SQL),都没问题。
      

  4.   


    insert into tempTable (name)  select cola  from mytemptable
      

  5.   

    insert into sql.shdp025.Temp.tempTable ([name]) select [cola]  from oracle.test.mytemptable红色部分说明:
    sql.            shdp025.       Temp
    这个不知道对不对  本机的SQL名称    SQL数据库名称oracle.          test
    这个不知道对不对    oracle数据库名称
    加了这两个打头的后,提示信息变了,变成,
    ORA-00926: 缺少 VALUES 关键字
     (System.Data.OracleClient)
      

  6.   

    不要执行语句检查,直接运行包。ssis里输入plsql命令很多时间检查不过。如果你执行了,并未报错,但是查询表并没有记录被写入的话,将改句改为:
    insert into tempTable (name)  select cola  from mytemptable
    commit
      

  7.   

    弄错了,我以为你执行sql任务往 oracle里写数据呢。
      

  8.   

    在控制流里放一个数据流任务,进入数据流界面拖一个oledb源,编辑它的连接为oracle.test
    拖一个oledb目标,编辑它的连接为sql.shdp025.Temp然后将源指向目标,自己编辑列之前的映射。执行包即可。
      

  9.   

    :),故乡的云,谢谢,我是要从Oracle里拿数据放到SQL里。
    values 关键字错误,我添加了,还是提示没有这个关键字。
      

  10.   

    不需要写insert语句。在数据流任务里从oracle源指向sqlserver目标就可以了。自己会插入的。
      

  11.   

    你可以参考这个贴子,不过有点区别,你的问题没有这个贴子这么复杂。这个贴子里
    第4步需要改动,把平版文件源换成oledb源,指向你的oracle数据源,然后选定表。
    第5步不需要。然后执行就可以了。
      

  12.   

    报歉,刚才一说加班的事,就打忘了
    http://blog.csdn.net/fcuandy/archive/2009/01/08/3735742.aspx