• 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.




  • 相关阅读:
    美团这个项目是用来干啥的?
    基于C#的机器学习--面部和动态检测-图像过滤器
    基于C#的机器学习--颜色混合-自组织映射和弹性神经网络
    EF Core For Oracle11中Find FirstOrDefault等方法执行失败
    使用DataContractJsonSerializer发序列化对象时出现的异常
    数据库空值排序
    C#浅拷贝与深拷贝测试
    C#排序算法的实现---快速排序
    C#排序算法的实现---选择排序
    C#排序算法的实现---冒泡排序
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13553297.html
Copyright © 2020-2023  润新知