这个查询:
SELECT
DENSE_RANK() OVER (PARTITION BY UPPER(ANUMID), UPPER(PRODNUMID) ORDER BY DATE_ADDED ASC) AS DRANK
, ANUMID
, PRODNUMID
, STATUS_FDATE
, STATUS_XDATE
, ROWSTATUS
FROM
AGCOMN
该查询按 DATE_ADDED 从 1 到 x 对每组 ANUMID、PRODNUMID 中的行进行排名。在随后的查询中,DRANK=1 获取添加的最新行。
此查询在 ORACLE SQL Developer、我的本地计算机 SSIS 环境以及 TEST 服务器上的 SSIS OLE DB 源预览中有效,但在运行包时不起作用。
错误:
[OLE DB 源 1 [677]] 错误:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。OLE DB 记录可用。来源:“OraOLEDB”Hresult:0x80040E14 描述:“ORA-00936:缺少表达式”。
环境:
本地 - Windows XP、SQL BIDS 2008
测试 - Windows7、SQL/BIDS 2008
从那以后,我重写并简化了查询,将数据抓取到一个临时表中,然后使用 SQL Server 对记录数进行排名和减少。
关于首先找到 SQL 不起作用的根本原因的任何想法?以及为什么预览会起作用,但运行包却不起作用?