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




  • 相关阅读:
    算法导论学习 之 插入排序
    python 的模块导入
    Python 模块的发布与上传
    Python 自学笔记《1》
    linux内核可以接受的参数 | Linux kernel启动参数 | 通过grub给内核传递参数
    Linux系统安装时分区的选择(推荐)
    Oracle 11G在用EXP 导出时,空表不能导出解决
    android TextView属性详解
    android中dip、dp、px、sp和屏幕密度
    android ImageView scaleType属性
  • 原文地址:https://www.cnblogs.com/plutozzl/p/13553297.html
Copyright © 2020-2023  润新知