select * from user_tab_columns where table_name = 'your_table' and column_name = 'your_column';
SQL> desc emp Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) ENAME VARCHAR2(10) Y JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDATE DATE Y SAL NUMBER(7,2) Y COMM NUMBER(7,2) Y DEPTNO NUMBER(2) Y
SQL> select decode(t.data_precision,null,t.data_length,t.data_precision) from user_tab_cols t where t.table_name='EMP' and t.column_name='EMPNO';
select table_name,column_name,data_length from user_tab_columns where table_name = 'TABLE' and column_name = 'COLUMN';
COL DATATYPE FORMAT A20 COL TABLE_NAME FORMAT A15select TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_cols where table_name='TBNAME' AND COLUMN_NAME='COLNAME'
varchar2的没问题吧.date的的确没法取.
SQL> desc emp Name Type Nullable Default Comments -------- ------------ -------- ------- -------- EMPNO NUMBER(4) ENAME VARCHAR2(10) Y JOB VARCHAR2(9) Y MGR NUMBER(4) Y HIREDATE DATE Y SAL NUMBER(7,2) Y COMM NUMBER(7,2) Y DEPTNO NUMBER(2) Y
SQL> select decode(t.data_precision,null,t.data_length,t.data_precision) from user_tab_cols t where t.table_name='EMP' and t.column_name='EMPNO';
where table_name = 'your_table' and column_name = 'your_column';
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
EMPNO NUMBER(4)
ENAME VARCHAR2(10) Y
JOB VARCHAR2(9) Y
MGR NUMBER(4) Y
HIREDATE DATE Y
SAL NUMBER(7,2) Y
COMM NUMBER(7,2) Y
DEPTNO NUMBER(2) Y
SQL> select decode(t.data_precision,null,t.data_length,t.data_precision) from user_tab_cols t where t.table_name='EMP' and t.column_name='EMPNO';
DECODE(T.DATA_PRECISION,NULL,T
------------------------------
4
SQL>
select table_name,column_name,data_length
from user_tab_columns
where table_name = 'TABLE' and column_name = 'COLUMN';
COL TABLE_NAME FORMAT A15select TABLE_NAME,COLUMN_NAME,DATA_TYPE,DATA_LENGTH from user_tab_cols
where table_name='TBNAME' AND COLUMN_NAME='COLNAME'
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
EMPNO NUMBER(4)
ENAME VARCHAR2(10) Y
JOB VARCHAR2(9) Y
MGR NUMBER(4) Y
HIREDATE DATE Y
SAL NUMBER(7,2) Y
COMM NUMBER(7,2) Y
DEPTNO NUMBER(2) Y
SQL> select decode(t.data_precision,null,t.data_length,t.data_precision) from user_tab_cols t where t.table_name='EMP' and t.column_name='EMPNO';
DECODE(T.DATA_PRECISION,NULL,T
------------------------------
4
SQL> select decode(t.data_precision,null,t.data_length,t.data_precision) from user_tab_cols t where t.table_name='EMP' and t.column_name='ENAME';
DECODE(T.DATA_PRECISION,NULL,T
------------------------------
10
SQL>
HIREDATE DATE 出来的结果是 7;
为色么?
上面写错了