Oracle user_tab_columns视图查询表结构信息

1 问题

使用 user_tab_columns 视图查询 Oracle 数据库指定用户实例下的所有表结构信息,但是发现有些表字段顺序和数据库中的表字段顺序不一致,而业务需求上是要求一致的。

当前数据库用户的表结构是从另一机器上备份导入的,然后用该视图去原数据库用户下查询相应的表,原库下查询的结果和数据库中表字段顺序一致。

2 解决方法

加上 column_id 升序排列就可以保证与原表字段顺序一致:

SELECT A.table_name 表名,  A.column_name 字段名, A.data_type 数据类型, A.data_length 数据长度, A.DATA_PRECISION 精度
FROM USER_TAB_COLUMNS A 
where table_name = 'STD_YYS_HDXX' ORDER BY column_id asc;

注:
DATA_PRECISION 是 NUMBER 类型字段的长度,如果表字段为 NUMBER 类型,则有值,否则DATA_PRECISION为空。

另外从该视图查出的 NUMBER 类型的 data_length 值全部为 22,如果要确定 NUMBER 类型字段的长度,则需取 DATA_PRECISION 的值。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值