日期:2014-05-16  浏览次数:20416 次

Oracle 的大小写敏感引起的表不存在问题
Oracle如果大小写敏感,可能引起表不存在的Exception.

例如下面的SQL:
select * from TABLE_NAME


可能会引起下面的异常:
java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

        at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:91)
        at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133)
        at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455)
        at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413)
        at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1034)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:194)


解决方案是:

SQL写成这样:
SELECT * FROM TABLE_NAME


select * fRom TABLE_NAME


或者干脆关闭大小写敏感。

1 楼 yzsunlight 13 小时前  
你的第二种写法,对吗?
然后可以关闭大小写敏感吗?怎么关