Oracle data_length和data_precision的区别


  1. 这两个属性都属于user_tab_columns视图,他们的含义:   
  2. data_length:当前列数据类型的字节长度   
  3.             如:EMPNO    NUMBER(4)    22   
  4.                ENAME    VARCHAR2(10) 10   
  5. data_precision:列相关数据类型(数字类型)的具体长度(有效位数),一个十进制数(NUMBER类型),或一个二进制树(FLOAT类型)   
  6.                如:SAL      NUMBER(7,2)   7   
  7. //   
  8. 来看看user_tab_columns视图的相关信息,我们主要关注Name,Comments两列和带注释的三行:   
  9. desc user_tab_columns;   
  10. Name                 Type          Nullable Default Comments                                                                
  11. -------------------- ------------- -------- ------- --------------------------------------------------------------------    
  12. TABLE_NAME           VARCHAR2(30)                   Table, view or cluster name                                             
  13. COLUMN_NAME          VARCHAR2(30)                   Column name                                                             
  14. DATA_TYPE            VARCHAR2(106) Y                Datatype of the column                                                  
  15. DATA_TYPE_MOD        VARCHAR2(3)   Y                Datatype modifier of the column                                         
  16. DATA_TYPE_OWNER      VARCHAR2(30)  Y                Owner of the datatype of the column                                     
  17. DATA_LENGTH          NUMBER                         Length of the column in bytes/*列的数据类型的字节长度*/                                           
  18. DATA_PRECISION       NUMBER        Y                Length: decimal digits (NUMBER) or binary digits (FLOAT)/*数字类型的实际长度*/                
  19. DATA_SCALE           NUMBER        Y                Digits to right of decimal point in a number/*小数点位数*/                           
  20. NULLABLE             VARCHAR2(1)   Y                Does column allow NULL values?                                          
  21. COLUMN_ID            NUMBER        Y                Sequence number of the column as created                                
  22. DEFAULT_LENGTH       NUMBER        Y                Length of default value for the column                                  
  23. DATA_DEFAULT         LONG          Y                Default value for the column                                            
  24. NUM_DISTINCT         NUMBER        Y                The number of distinct values in the column                             
  25. LOW_VALUE            RAW(32)       Y                The low value in the column                                             
  26. HIGH_VALUE           RAW(32)       Y                The high value in the column                                            
  27. DENSITY              NUMBER        Y                The density of the column                                               
  28. NUM_NULLS            NUMBER        Y                The number of nulls in the column                                       
  29. NUM_BUCKETS          NUMBER        Y                The number of buckets in histogram for the column                       
  30. LAST_ANALYZED        DATE          Y                The date of the most recent time this column was analyzed               
  31. SAMPLE_SIZE          NUMBER        Y                The sample size used in analyzing this column                           
  32. CHARACTER_SET_NAME   VARCHAR2(44)  Y                Character set name                                                      
  33. CHAR_COL_DECL_LENGTH NUMBER        Y                Declaration length of character type column                             
  34. GLOBAL_STATS         VARCHAR2(3)   Y                Are the statistics calculated without merging underlying partitions?    
  35. USER_STATS           VARCHAR2(3)   Y                Were the statistics entered directly by the user?                       
  36. AVG_COL_LEN          NUMBER        Y                The average length of the column in bytes                               
  37. CHAR_LENGTH          NUMBER        Y                The maximum length of the column in characters                          
  38. CHAR_USED            VARCHAR2(1)   Y                C is maximum length given in characters, B if in bytes                  
  39. V80_FMT_IMAGE        VARCHAR2(3)   Y                Is column data in 8.0 image format?                                     
  40. DATA_UPGRADED        VARCHAR2(3)   Y                Has column data been upgraded to the latest type version format?        
  41. HISTOGRAM            VARCHAR2(15)  Y   
  42. //   
  43. 实例1:查看emp表的列对应的data_length,data_precision,data_scale实际值   
  44. SQL> desc emp;   
  45. Name     Type         Nullable Default Comments    
  46. -------- ------------ -------- ------- --------    
  47. EMPNO    NUMBER(4)                                 
  48. ENAME    VARCHAR2(10) Y                            
  49. JOB      VARCHAR2(9)  Y                            
  50. MGR      NUMBER(4)    Y                            
  51. HIREDATE DATE         Y                            
  52. SAL      NUMBER(7,2)  Y                            
  53. COMM     NUMBER(7,2)  Y                            
  54. DEPTNO   NUMBER(2)    Y                            
  55. //   
  56. select column_name,data_type,data_length,data_precision,data_scale   
  57. from user_tab_columns where table_name='EMP';   
  58. COLUMN_NAME                    DATA_TYPE                       DATA_LENGTH DATA_PRECISION DATA_SCALE   
  59. ------------------------------ ------------------------------- ----------- -------------- ----------   
  60. EMPNO                          NUMBER                                   22              4          0   
  61. ENAME                          VARCHAR2                                 10                   
  62. JOB                            VARCHAR2                                  9                   
  63. MGR                            NUMBER                                   22              4          0   
  64. HIREDATE                       DATE                                      7                   
  65. SAL                            NUMBER                                   22              7          2   
  66. COMM                           NUMBER                                   22              7          2   
  67. DEPTNO                         NUMBER                                   22              2          0  

相关内容