ORA_01747:User.table.column 或列说明无效
此问题的原因是因为表的列名称使用了Oracle声明的关键字,解决方案:
1、首先我们要确认哪些字符串是Oracle的关键字,具体可通过Oracle提供的V$RESERVED_WORDS
2、对历史遗留系统的处理
- 考虑修改表的列名,风险较大
- 修改特定查询语句
3、验证
通过验证得出结论:
- 在查询列中使用双引号
- 要注意列的大小写
oracle的保留字
ACCESS ADD ALL ALTER AND ANY AS ASC AUDIT BETWEEN BY CHAR CHECK CLUSTER COLUMN COMMENT
COMPRESS CONNECT CREATE CURRENT DATE DECIMAL DEFAULT DELETE DESC DISTINCT DROP ELSE EXCLUSIVE
EXISTS FILE FLOAT FOR FROM GRANT GROUP HAVING IDENTIFIED IMMEDIATE IN INCREMENT INDEX INITIAL
INSERT INTEGER INTERSECT INTO IS LEVEL LIKE LOCK LONG MAXEXTENTS MINUS MLSLABEL MODE MODIFY
NOAUDIT NOCOMPRESS NOT NOWAIT
NULL NUMBER OF OFFLINE ON ONLINE OPTION OR ORDER PCTFREE PRIOR
PRIVILEGES PUBLIC RAW RENAME RESOURCE REVOKE ROW ROWID ROWNUM ROWS SELECT SESSION SET
SHARE SIZE SMALLINT START SUCCESSFUL SYNONYM SYSDATE TABLE THEN TO TRIGGER UID UNION UNIQUE
UPDATE USER VALIDATE VALUES VARCHAR VARCHAR2 VIEW WHENEVER WHERE WITH
本文出自 “sxmalinhu” 博客,请务必保留此出处http://malinhu.blog.51cto.com/3568860/975122