2015年6月6日 星期六

[SQL Server]Linked Server到Oracle時,出現'To_Date' is not a recognized built-in function name的解法

       用連結伺服器連到Oracle要取資料,因為有日期時間的過濾條件,在Oracle需要用To_Date函數,但此函數無法通過SQL Server語法剖析的檢查,會出如下的錯誤
Select * From LK_ORA..HR.EMPLOYEES Where  Login_Date >= To_Date('2015-05-01 00:00:00','yyyy-mm-dd hh24:mi:ss') And Login_Date < TO_DATE('2015-05-02 00:00:00','yyyy-mm-dd hh24:mi:ss');


       解法一:在Oracle建View,在SQL端直接讀View,但多了道建View的手續

       解法二:在SQL端改用Exec,比較簡單,範例如下
EXEC ('Select * From HR.EMPLOYEES Where  Login_Date >= To_Date(''2015-05-01 00:00:00'',''yyyy-mm-dd hh24:mi:ss'') And Login_Date < TO_DATE(''2015-05-02 00:00:00'',''yyyy-mm-dd hh24:mi:ss'')') at LK_ORA;


0 意見:

張貼留言