SQL Server 2008 配置鏈接服務器訪問 Oracle:
MSDAORA 驅動正常,但 Oracle OLE DB 驅動報錯:數據不適用於類型 "numeric"。
TOP n 語法。NUMBER 類型映射更嚴格,可能導致精度/標度不匹配。-- 錯誤寫法
SELECT TOP 10 * FROM ODS2..EDM_BASE.T03_NOACCOUNTJOUR_CTS;
-- 正確寫法 (Oracle 標準分頁)
SELECT * FROM (
SELECT * FROM ODS2..EDM_BASE.T03_NOACCOUNTJOUR_CTS
) WHERE ROWNUM <= 10;
-- 若需要排序
SELECT * FROM (
SELECT * FROM ODS2..EDM_BASE.T03_NOACCOUNTJOUR_CTS
ORDER BY some_column
) WHERE ROWNUM <= 10;
-- 使用 OPENQUERY 將完整 Oracle SQL 推送下執行
SELECT * FROM OPENQUERY(ODS2, '
SELECT * FROM (
SELECT * FROM EDM_BASE.T03_NOACCOUNTJOUR_CTS
ORDER BY create_time DESC
) WHERE ROWNUM <= 10
');
OPENQUERY 將過濾/排序下推到 Oracle 執行,網絡傳輸僅返回結果集。Server..Schema.Table) 查詢。