今天建立视图时遇到如下问题。
按照如下方式建立报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@]