3

MS-SQL サーバーのリンク サーバー経由でアクセスされる複雑なビューを作成しようとしています。私が抱えている問題は、クエリが ROWNUM を使用して ROWID を生成することです。

生成された ROWID のデータ型は NUMBER ですが、これが問題を引き起こしているようです。これを NUMBER (ここにサイズを挿入) に変換できれば問題ありません。しかし、これが可能かどうかはわかりません。

CREATE OR REPLACE FORCE VIEW EXAMPLE ("ROW_ID")
AS
SELECT ROWNUM ROW_ID,
FROM
(SUB-QUERY)

完全なクエリ名と列名 (作業制約) を与えることはできませんが、SQL Developer のクエリから返された列の型は次のとおりです。

列の種類

問題は、返された ROWNUM のデータ型が NUMBER(20) または同様の長さではなく、数値であることに集中していると思います。このクロスオーバーは、リンク サーバー エラーに関して私が見ている問題ですが、誰かが異なることを知っている場合はお知らせください;)

4

2 に答える 2

6

キャスト関数を使用できます。cast( rownum AS NUMBER(10)) as row_id

create or replace view tvv as 
   select cast( rownum AS NUMBER(10)) as row_id 
   from all_objects 
   where rownum < 10;

> desc tvv
 Name              Null?    Typ
 ----------------- -------- ------------
 ROW_ID                     NUMBER(10)
于 2012-08-13T13:39:13.413 に答える
0

本当に良い解決策ではありませんが、rownum を削除し、別の角度から問題を回避することで、エラーを削除しました。

于 2012-08-14T10:25:53.303 に答える