2010-07-01 71 views
1

我確實有一個oracle 8數據庫,我想從中獲取數據到SQL Server 2005.下面的語句工作正常,如果SQL Server 2005上的表爲空。如果我運行,讓我們說缺少一個條目,它不起作用。請讓我知道,如果有任何額外的信息將是有用的!SQL:與openquery不存在按預期方式工作

SELECT wdmsoracle.NO 
FROM (Select * from OPENQUERY(msch, 'select 
               actu.NO 
               , actu.ANNOSEQUENT 
               , replace(replace(dm.descript, ''Generated by modification request '', ''Modification request''), ''Pseudo ECR for WDMS-SAP interface'', ''New Drawing'') 
               , actu.APPRDATE 
               , actu.MADEDATE 
               , actu.MAINDRW 
               , actu.DESIGNGRP 
               , actu.ITEMID 
               , actu.ISSUE 
               , actu.DESCRIPT 
               , actu.DESCRIPT2 
               , dr.PRODUCTCODE 
               , mpaths.webpath as asdasd 
               , vpaths.webpath 
              FROM 
               WDDRAWACTU actu 
               , wddraw dr 
               , wddvfilesiss vfiles 
               , wddvpaths vpaths 
               , wddmfiles mfiles 
               , wddmpaths mpaths 
               , wdanno dm 
              WHERE actu.apprdate >= to_date(''01-01-05'',''dd-mm-yy'') 
               and actu.itemid = dr.itemid (+) 
               and actu.issue = dr.issue (+) 
               and actu.annosequent = dm.sequent (+) 
               and actu.itemid = vfiles.itemid (+) 
               and actu.issue = vfiles.issue (+) 
               and vfiles.pathid = vpaths.pathid 
               and actu.annosequent = mfiles.sequent (+) 
               and mfiles.pathid = mpaths.pathid')) as wdmsoracle 
Where NOT EXISTS (
     SELECT wdmsoracle.NO 
     FROM [DesignMessage_Workflow].[dbo].[WDMS] wdms, (Select * from OPENQUERY(msch, 'select 
               actu.NO 
              FROM 
               WDDRAWACTU actu 
              WHERE actu.apprdate >= to_date(''01-01-05'',''dd-mm-yy'')')) as wdmsoracle 
     WHERE wdms.NO = wdmsoracle.NO) 

回答

1

this website幫助,我能解決它在我自己的:

SELECT wdmsoracle.NO 
     FROM (Select * from OPENQUERY(msch, 'select 
               actu.NO 
               , actu.ANNOSEQUENT 
               , replace(replace(dm.descript, ''Generated by modification request '', ''Modification request''), ''Pseudo ECR for WDMS-SAP interface'', ''New Drawing'') 
               , actu.APPRDATE 
               , actu.MADEDATE 
               , actu.MAINDRW 
               , actu.DESIGNGRP 
               , actu.ITEMID 
               , actu.ISSUE 
               , actu.DESCRIPT 
               , actu.DESCRIPT2 
               , dr.PRODUCTCODE 
               , mpaths.webpath as asdasd 
               , vpaths.webpath 
              FROM 
               WDDRAWACTU actu 
               , wddraw dr 
               , wddvfilesiss vfiles 
               , wddvpaths vpaths 
               , wddmfiles mfiles 
               , wddmpaths mpaths 
               , wdanno dm 
              WHERE actu.apprdate >= to_date(''01-01-05'',''dd-mm-yy'') 
               and actu.itemid = dr.itemid (+) 
               and actu.issue = dr.issue (+) 
               and actu.annosequent = dm.sequent (+) 
               and actu.itemid = vfiles.itemid (+) 
               and actu.issue = vfiles.issue (+) 
               and vfiles.pathid = vpaths.pathid 
               and actu.annosequent = mfiles.sequent (+) 
               and mfiles.pathid = mpaths.pathid')) as wdmsoracle 
Where NOT EXISTS (
     SELECT wdms.NO 
     FROM [DesignMessage_Workflow].[dbo].[WDMS] wdms 
     WHERE wdms.NO = wdmsoracle.NO) 
相關問題