• ORA-00972: identifier is too long 问题处理


    ORA-00972: identifier is too long 问题处理

        关于这个错误从报错提示来看,就是标识位置字段太长了,一般出现在别名长度问题上。这种情况对字段做出些修改即可。还有另外一种情况,也会报相同的错误,一条SQL可以在客户端工具如navicat,PLSQL等执行,但是却无法在SQL Plus中执行。出现这种情况一般是字符集的问题。
    

    测试流程:

    1)在SQL Plus中执行

    SYS@proe>SELECT 
      a.tablespace_name "表空间名", 
      total / 1024 / 1024 "表空间大小单位M", 
      free / 1024 / 1024 "表空间剩余大小单位M", 
      (total - free) / 1024 / 1024 "表空间使用大小单位M", 
      Round(
        (total - free) / total, 
        4
      ) * 100 "使用率   [[%]]" 
    FROM 
      (
        SELECT 
          tablespace_name, 
          Sum(bytes) free 
        FROM 
          DBA_FREE_SPACE 
        GROUP BY 
          tablespace_name
      ) a, 
      (
        SELECT 
          tablespace_name, 
          Sum(bytes) total 
        FROM 
          DBA_DATA_FILES 
        GROUP BY 
          tablespace_name
      ) b 
    WHERE 
      a.tablespace_name = b.tablespace_name;  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19 
      20   21   22   23   24   25   26   27   28   29   30  
    
      a.tablespace_name "表空间名",
                        *
    ERROR at line 2:
    ORA-00972: identifier is too long

    2)在navicat中执行

    image-20200824125627110

            可以看到在navicat中可以正常执行,但是在sqlplus中报错。
    

    解决办法:

        重新定义环境变量
    
    [oracle@server1 ~]$ export NLS_LANG='american_america.AL32UTF8'
    SYS@proe>SELECT 
      a.tablespace_name "表空间名", 
      total / 1024 / 1024 "表空间大小单位M", 
      free / 1024 / 1024 "表空间剩余大小单位M", 
      (total - free) / 1024 / 1024 "表空间使用大小单位M", 
      Round(
        (total - free) / total, 
        4
      ) * 100 "使用率   [[%]]" 
    FROM 
      (
        SELECT 
          tablespace_name, 
          Sum(bytes) free 
        FROM 
          DBA_FREE_SPACE 
        GROUP BY 
          tablespace_name
      ) a, 
      (
        SELECT 
          tablespace_name, 
          Sum(bytes) total 
        FROM 
          DBA_DATA_FILES 
        GROUP BY 
          tablespace_name
      ) b 
    WHERE 
      a.tablespace_name = b.tablespace_name;  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20   21   22   23   24   25   26   27   28   29   30  
    
    
    表空间名        表空间大小单位M 表空间剩余大小单位M 表空间使用大小单位M 使用率   [[%]]
    --------------- --------------- ------------------- ------------------- --------------
    SYSAUX                      610             33.0625            576.9375          94.58
    UNDOTBS1                     90             67.4375             22.5625          25.07
    USERS                      6.25                .875               5.375             86
    TBS_TRAN                    100              98.875               1.125           1.13
    SYSTEM                      750                   1                 749          99.87
    EXAMPLE                  346.25             36.0625            310.1875          89.58
    TEST_1                       20                  19                   1              5
    
    
    7 rows selected.




  • 相关阅读:
    SCILAB简介[z]
    UG OPEN API编程基础 2约定及编程初步
    Office 2003与Office 2010不能共存的解决方案
    UG OPEN API 编程基础 3用户界面接口
    NewtonRaphson method
    UG OPEN API编程基础 13MenuScript应用
    UG OPEN API编程基础 14API、UIStyler及MenuScript联合开发
    UG OPEN API编程基础 4部件文件的相关操作
    UG OPEN API编程基础 1概述
    16 UG Open的MFC应用
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13553297.html
Copyright © 2020-2023  润新知