今天数据库巡检时,查询dba_data_files的字段出现报错:
ORA-00972: identifier is too long
网上查询获知为:字面的意思是标识符(你备注的名称)过长,有的说标识符不可超过30。
附:我的查询语句
select file_name 文件名,tablespace_name 表空间,bytes/1048576 使用,user_bytes/1048676 可用,maxbytes/1048576 最大,autoextensible 自增长,status from dba_data_files;
虽然没有标识符过长的情况,但我尝试删了好几个字段和标识名称,依然报错;
之后,把sql语句复制粘贴到文本文档,发现是中英文符号问题,把所有符号改为中文,问题解决。
另:
看到别人的出错非中英文符号问题,这里一并补录,以防以后出现同样问题忘记如何解决:
原因:字符集不匹配所造成
1.解决过程:
在环境变量(计算机-->属性-->高级-->环境变量-->设置下字符集)中加入:
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(也可使用:AMERICAN_AMERICA.UTF8)
重新启动,问题解决,可以执行。
2.或者,通过注册表来修改:
运行:regedit
-- HKEY_LOCAL_MACHINE
-- SOFTWARE
-- ORACLE
-- KEY_OraClient11g_home1 和 KEY_OraDb11g_home1
找到NLS_LANG修改为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK