【发布时间】:2021-01-05 07:03:13
【问题描述】:
我希望在我的数据仓库中统一多个列
我的源系统是基于 Oracle 的,我想在仓库中定义我的列,使给定的列名只能有一种数据类型和长度
我正在寻找有关在我的源系统中的列中使用的实际长度的信息,并且可以通过此脚本识别列名、数据类型和长度
SELECT DISTINCT
column_name,
data_type,
data_length
FROM
all_tab_columns
ORDER BY
column_name
但这不会导致各个列的实际 MAX(LENGTH())
这是否可能通过循环函数获得?
【问题讨论】:
-
我的建议是使用 all_tab_columns 中的 data_length ,原因很简单,因为您的 OLTP 表允许数据达到该长度。如果您创建一个具有当前最大长度的列,并且明天如果有更长的新数据出现,那么您将需要 DDL 语句。
-
嗨 Anup 我也想过这个问题,唯一的缺点是我们有很多列设置为最大值,导致不必要的大列长度
-
您想要最大定义数据长度还是最长填充值?您是否为数字列的比例或精度而烦恼?
-
嗨 APC,我正在寻找最长的填充值,主要是 varchar 数据类型
标签: oracle architecture