Oracle Rownum演员

Dev*_*and 3 sql oracle rownum

我正在尝试创建一个复杂的视图,将通过MS-SQL服务器中的链接服务器访问.我遇到的问题是查询使用ROWNUM生成ROWID.

生成的ROWID的数据类型为NUMBER,但这显然会导致我出现问题,如果我可以将其转换为NUMBER(此处为插入大小),那么一切都会好的.但我不确定这是否可行.

CREATE OR REPLACE FORCE VIEW EXAMPLE ("ROW_ID")
AS
SELECT ROWNUM ROW_ID,
FROM
(SUB-QUERY)
Run Code Online (Sandbox Code Playgroud)

我无法提供完整的查询和列名(工作约束),但这里是SQL Developer中查询返回的列类型

列类型

我认为问题集中在ROWNUM的返回数据类型是Number而不是NUMBER(20)或类似的长度,并且这个交叉是我看到的关于链接服务器错误的问题但是如果有人知道不同让我知道;)

sch*_*rik 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)
Run Code Online (Sandbox Code Playgroud)