日期:2014-05-17  浏览次数:20936 次

ora-00904问题
建立视图时数据库提示ora-00904: "x ". "列名 ":invalid   identifier

在oracle9上面执行没有错误提示,而搬到oracle916上面就提示错误。


------解决方案--------------------
"x ".这张表在你的9的数据库里有,但在9.16的数据库没有
------解决方案--------------------
检查表结构是否完全一致,包括表名列名等
select * from user_tables where table_name = &table_name
在两边都执行看一下,是不是一边的列名或者表名区分了大小写
(创建的时候加上了引号)
------解决方案--------------------
1 检查表结构是否一致;
2 多用户情况下检查用户授权和同义词,如在a库中a用户下的tab1表建立了公有同义词,而在b库中未建,则a库中b用户下建试图时引用a用户的tab1表可以直接引用但在b库中就不能直接引用;
3 用sql建库时存在先后问题,如果建视图的sql在建表的sql或最后一个修改表的sql后面那么建视图的sql会失败,所以一般有视图的建库sql集一般都要循环执行多遍才能保证所有数据对象都成功建立