none
十万火急,SQLServer 对接“Oracle”数据库,急急急。。。 RRS feed

  • 问题

  • declare @oraclesql nvarchar(800)

    declare @LastTime    char(10)

    set    @LastTime =     CONVERT(varchar(100),(select  top 1   DATime  from  DataETL  where  MeterType='WM'  order  by  DATime  desc),23)

    set  @oraclesql='select   f_meter_code, f_meterday_date, f_meterday_used  from  t_rp_meter_dayenergytemp   where      f_meterday_date   >    '''+@LastTime+''''


    declare   ImpCursor   cursor   for     select f_meter_code, f_meterday_date, f_meterday_used
     from    openrowset('msdaora','.';'scott';'123456',''''+@oraclesql+'''')

    问题一:这样“拼接字符串”做为参数好像不行啊???    直接以‘select  f_meter_code, f_meterday_date, f_meterday_used  from  t_rp_meter_dayenergytemp ’做为参数是没有问题的,那么“@LastTime” 变量怎样传入方法中呢???

    问题二:写的“openrowset”方法访问本地“Oracle”数据库没有问题吧。
    msdaora:MSDAORA是OLEDB FOR ORACLE的驱动

    ".":本地服务器

    "scott":用户名

    "123456":密码

    "@oraclesql":操作语句

    疑问:不用指定“Oracle”数据库的名字啊???    数据库的名字叫做“orcl”...不用指定吗???


    感谢各位大师。。。


    Science and technology is my lover.

    2012年12月12日 3:51

答案

全部回复

  • Did you config tns on sql server? Which tells how to connect to Oracle db.
    2012年12月12日 4:34
  • Master,

        Using   "openrowset"   to   access    oracle    database    from     SQLServer     has     to    config  "tns"  on    sql server?     


    Science and technology is my lover.


    2012年12月12日 5:29
  • Otherwise how does sql know where to connect to?
    2012年12月12日 14:36
  • "listener.ora"和“tnsnames.ora”,直接复制“Oracle”服务端的给连接“客户端”的程序使用,一般都会好使吧???


    在客户端机器上手动创建“tnsnames.ora”有时候,不太好用。

    “listener.ora”在客户端上也必须自己手动创建吧,不然连接提示找不到“监听程序”。

    Science and technology is my lover.

    2012年12月17日 8:36
  • Yes, you can copy those files from another machine.
    • 已标记为答案 starrycheng 2012年12月19日 9:15
    2012年12月17日 21:13