如何访问或选择Data_Type的比例和精度?

How do you access or SELECT Scale and Precision of a Data_Type?

提问人:Adachi 提问时间:10/3/2021 最后编辑:William RobertsonAdachi 更新时间:10/3/2021 访问量:176

问:

我正在尝试从 SQL Developer 打印出报告。当我选择Data_Type时,我得到了预期的数据类型,但我希望小数位数和精度也就在它旁边......例如

CHAR(3, 0)
NUMBER(7, 0)

现在我只得到数据类型本身,如:

CHAR
NUMBER

请问我缺少什么语法来访问或选择比例和精度?

SQL Oracle 缩放 精度

评论


答:

2赞 user5683823 10/3/2021 #1

如果您正在“选择”数据类型,我假设您正在从类似 .右?喜欢这个:all_tab_columns

select column_name, data_type
from   all_tab_columns
where  owner = 'SCOTT' and table_name = 'EMP'
;

COLUMN_NAME  DATA_TYPE   
------------ ------------
EMPNO        NUMBER      
ENAME        VARCHAR2    
JOB          VARCHAR2    
MGR          NUMBER      
HIREDATE     DATE        
SAL          NUMBER      
COMM         NUMBER      
DEPTNO       NUMBER   

现在,您想知道列的最大长度,以及 的精度和小数位数,对吗?VARCHAR2NUMBER

向 .这样:select

select column_name, data_type, char_col_decl_length, data_precision, data_scale
from   all_tab_columns
where  owner = 'SCOTT' and table_name = 'EMP'
;

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

或者,在 SQL*Plus(或实现其功能的其他接口)中,您可以使用 SQL*Plus 命令:describe

describe scott.emp

Name     Null? Type         
-------- ----- ------------ 
EMPNO          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*Plus 使用查询实现自己的命令,就像我之前分享的查询一样。describeselect

0赞 Himanshu 10/3/2021 #2

为什么不直接使用来描述表格

   Desc tablename 

  Describe tablename 

评论

0赞 Michael 10/3/2021
“desc” 不是 SQL 命令
0赞 Himanshu 10/3/2021
在sqlplus命令终端中键入相同的命令,n看到魔术