我正在尝试创建一个复杂的视图,该视图将通过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,而不是NUMBER(20)或类似的长度,这种交叉是我看到的关于链接服务器错误的问题,但如果有人知道不同的,请让我知道;)
发布于 2012-08-13 21:39:13
您可以使用cast函数: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-14 18:25:53
这不是一个很好的解决方案,但是通过删除rownum并从不同的角度解决问题,我已经删除了错误。
https://stackoverflow.com/questions/11935235
复制相似问题