Oracle中建立物化视图报错
今天在建立视图的时候,报了一个错:ORA-01723: zero-length columns are not allowed。
建视图的语句:
create
materialized
view VW_XX
refresh force on demand
as
select '' f_a,b f_b from xx
根据后面的语句创建视图,都是可以的,但是根据查询语句创建物化视图就出现错误了。网上找了一下,原因是:ORA-01723是ORACLE规定因为列的长度最小应该是1。
物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图。
解决办法:把sql中的‘’替换成 CAST(null AS VARCHAR2(10))即可。
create
materialized
view VW_XX
refresh force on demand
as
select CAST(null AS VARCHAR2(2)) f_a,b f_b from xx