ORA-00904/ORA-00942异常
SELECT
*
FROM
TF_ECP_ORDER_PRE_ACCEPTED
ORDER BY
id这句SQL看着是完全OK的,但是报出了ORA-00904异常.
检查发现建表语句中的列名使用了双引号,SO
SELECT
*
FROM
TF_ECP_ORDER_PRE_ACCEPTED
ORDER BY
"id"这样就OK了.
究其原因:
Oracle数据库中各种对象(包括表,列,索引等)默认不区分大小写,在数据字典中一律用大写。假如用户在建表(包括外部表)时,将列名/表名用双引号括起,这些都成为大小写区分的数据库对象。这时select 时需要严格按照建表时的大小写才能成功,否则返回ORA-000904或ORA-00942错误。
某些软件可以帮助用户自动产生Create table语句,这时需要将双引号去掉。否则会产生上述错误。
建表语句中也不建议使用双引号建列,这样的列是不区分大小写的.
评论区
还没有人评论