ITPub博客

首页 > 数据库 > Oracle > 关于ORACLE中CREATE VIEW 的时候用ORDER BY 和 WITH READ ONLY 的问题

关于ORACLE中CREATE VIEW 的时候用ORDER BY 和 WITH READ ONLY 的问题

原创 Oracle 作者:mlh9906 时间:2009-02-13 15:12:08 0 删除 编辑

今天建立视图时遇到如下问题。

按照如下方式建立报ora-00933错误:

CREATE OR REPLACE VIEW AREA_TOWN AS
SELECT a.area_name,a.cuid
FROM AREA a
ORDER BY a.area_name
WITH READ ONLY;

经过几次测试发现只要ORDER BY 和WITH READ ONLY同时出现就会报这个错。

于是乎,有了很多怪异的想法,什么ORDER BY的生成方式和READ ONLY 属性相抵触等。

后来经过别人指点,发现只需调整一下SQL的写法即可。如下:

CREATE OR REPLACE VIEW AREA_TOWN AS
SELECT area_name,cuid FROM (SELECT a.area_name,a.cuid
FROM AREA a
ORDER BY a.area_name)
WITH READ ONLY;

结论有二:

1.认真分析错误信息。如此时只是一个简单的语法错误。所以还仅仅是SQL解析的问题,没必要考虑那么深。

2.SQL语句也要认真写,机器不是人。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/146865/viewspace-1017313/,如需转载,请注明出处,否则将追究法律责任。

全部评论

注册时间:2009-04-27

  • 博文量
    11
  • 访问量
    13068