我在视图查询中找到了这个
(SELECT CAST(COUNT( *) AS NUMBER(10))
FROM other_table ibl
WHERE ibl.fk_id = my_table.id
) AS my_column但是,Oracle仍然将该列报告为没有大小的类型号。
有办法绕过这件事吗?我希望它是号码(10)
db版本为11.2
发布于 2013-11-25 00:27:34
看来你把CAST放错地方了。您的CAST需要包装内联子查询。
在本例中,col2是当前定义列的方式。col1展示了如何定义它。
SQL> ed
Wrote file afiedt.buf
1 create or replace view vw_foo
2 as
3 select cast( (select count(*) from dual) as number(10) ) col1,
4 (select cast( count(*) as number(10)) from dual) col2
5* from dual
SQL> /
View created.
SQL> desc vw_foo
Name Null? Type
----------------------------------------- -------- ----------------------------
COL1 NUMBER(10)
COL2 NUMBER发布于 2013-11-25 00:23:25
你想要做的事情应该很好,所以你的问题必须来自其他地方。下面是我用来测试这个的脚本。
CREATE Table table1 (no1 NUMBER);
INSERT INTO table1 VALUES(123);
DESC table1;
CREATE VIEW view1 AS
SELECT CAST(no1 AS NUMBER(10)) AS no2 FROM table1;
DESC view1;https://stackoverflow.com/questions/20182540
复制相似问题