日期:2014-05-17  浏览次数:20813 次

oracle number数据类型问题
在oracle中我从USER_TAB_COLUMNS 要取出字段,字段数据类型,字段长度,问题出来了,如果是number类型的字段,取出来的字段长度始终是22,咋整啊?各位大虾帮忙啊,在线等待...

------解决方案--------------------
这个不是问题,通过DATA_PRECISION和DATA_SCALE就能取得实际长度和小数位数
下面是我测试的过程,楼主看下?

SQL code

SQL> desc emp
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- -------------------
 EMPNO                                                 NOT NULL NUMBER(4)
 ENAME                                                          VARCHAR2(10)
 JOB                                                            VARCHAR2(9)
 MGR                                                            NUMBER(4)
 HIREDATE                                                       DATE
 SAL                                                            NUMBER(7,2)
 COMM                                                           NUMBER(7,2)
 DEPTNO                                                         NUMBER(2)


SQL> select TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH,DATA_PRECISION,DATA_SCALE from user_tab_col
s where table_name = 'EMP'; 

TABLE_NAME      COLUMN_NAME                    DATA_TYPE       DATA_LENGTH DATA_PRECISION DATA_SCALE
--------------- ------------------------------ --------------- ----------- -------------- ----------
EMP             EMPNO                          NUMBER                   22              4          0
EMP             ENAME                          VARCHAR2                 10
EMP             JOB                            VARCHAR2                  9
EMP             MGR                            NUMBER                   22              4          0
EMP             HIREDATE                       DATE                      7
EMP             SAL                            NUMBER                   22              7          2
EMP             COMM                           NUMBER                   22              7          2
EMP             DEPTNO                         NUMBER                   22              2          0

8 rows selected.