当我首先创建一个表时,它是正确的:
create table test (time timestamp(6));
Data_length = 11
"COLUMN_NAME" "DATA_TYPE" "DATA_LENGTH"
"TIME" "TIMESTAMP(6)" 11
但是当我做CTAS时:
create table TEST as
select to_timestamp('09/09/17 04.07.25.086273', 'mm/dd/yy hh24:mi:ss.FF6') time
from dual;
数据长度为20:
select column_name, data_type, data_length
from all_tab_columns
where owner =user and table_name='TEST';
"COLUMN_NAME" "DATA_TYPE" "DATA_LENGTH"
"TIME" "TIMESTAMP(6)" 20
如何在CTAS中获取data_length = 11?
发布于 2017-11-12 08:16:08
我只是想出了一种方法:
CTAS运行alter on time列后:
alter table TEST modify(time TIMESTAMP);
它缩小到11个字节
select column_name, data_type, data_length
from all_tab_columns
where owner =user and table_name='TEST';
"COLUMN_NAME" "DATA_TYPE" "DATA_LENGTH"
"TIME" "TIMESTAMP(6)" 11
https://stackoverflow.com/questions/47244133
复制相似问题