このクエリ:
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
このクエリは、ANUMID、PRODNUMID の各グループの行を DATE_ADDED で 1 から x までランク付けします。後続のクエリでは、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 サーバーを使用してランク付けし、レコード数を削減しました。
そもそもSQLが機能しない根本原因を見つけるためのアイデアはありますか? また、プレビューは機能するのに、パッケージを実行すると機能しないのはなぜですか?