oracle表名 字段名等对象的命名长度限制

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

原创作品,出自 “深蓝的blog” 博客,欢迎转载,转载时请务必注明出处,否则追究版权法律责任。

深蓝的blog:http://blog.csdn.net/huangyanlong/article/details/45854385

 

今天在为某系统数据库结构整理升级脚本时,遇到了“命名字节过长的错误”,类似于下面的截图语句:

        由于升级的结构中对于字段名的命名根据业务进行了修改,出现了命名过长的情况。

这里想说一下,对于oracle,表名、字段名等对象命名字节个数限制在了30个字节!是无法更改的,这是oracle的固化设置。

        我们可以通过查看数据库字典进一步验证一下。先思考一下,哪里可以获得关于这类命名的信息呢?有没有想到USER_TAB_COLUMNS,USER_CONSTRAINTS这一类的视图。我们来做一个验证。

实验:

        在sys用户下,查看user_tables这个视图,可以发现在table_name这个字段,类型为varchar,长度为30,这里记录的表的名称,如下:

再进一步查看视图的结构,如下:

create or replace view user_tables(table_name, tablespace_name, cluster_name, iot_name, status, pct_free, pct_used, ini_trans, max_trans, initial_extent, next_extent, min_extents, max_extents, pct_increase, freelists, freelist_groups, logging, backed_up, num_rows, blocks, empty_blocks, avg_space, chain_cnt, avg_row_len, avg_space_freelist_blocks, num_freelist_blocks, degree, instances, cache, table_lock, sample_size, last_analyzed, partitioned, iot_type, temporary, secondary, nested, buffer_pool, flash_cache, cell_flash_cache, row_movement, global_stats, user_stats, duration, skip_corrupt, monitoring, cluster_owner, dependencies, compression, compress_for, dropped, read_only, segment_created, result_cache)asselect o.name,       decode(bitand(t.property,2151678048), 0, ts.name,              decode(t.ts#, 0, null, ts.name)),       decode(bitand(t.property, 1024), 0, null, co.name),       decode((bitand(t.property, 512)+bitand(t.flags, 536870912)),              0, null, co.name),       decode(bitand(t.trigflag, 1073741824), 1073741824, 'UNUSABLE', 'VALID'),       decode(bitand(t.property, 32+64), 0, mod(t.pctfree$, 100), 64, 0, null),       decode(bitand(ts.flags, 32), 32, to_number(NULL),          decode(bitand(t.property, 32+64), 0, t.pctused$, 64, 0, null)),       decode(bitand(t.property, 32), 0, t.initrans, null),       decode(bitand(t.property, 32), 0, t.maxtrans, null),       decode(bitand(t.property, 17179869184), 17179869184,                     ds.initial_stg * ts.blocksize,                     s.iniexts * ts.blocksize),       decode(bitand(t.property, 17179869184), 17179869184,              ds.next_stg * ts.blocksize,              s.extsize * ts.blocksize),       decode(bitand(t.property, 17179869184), 17179869184,              ds.minext_stg, s.minexts),       decode(bitand(t.property, 17179869184), 17179869184,              ds.maxext_stg, s.maxexts),       decode(bitand(ts.flags, 3), 1, to_number(NULL),              decode(bitand(t.property, 17179869184), 17179869184,                            ds.pctinc_stg, s.extpct)),       decode(bitand(ts.flags, 32), 32, to_number(NULL),         decode(bitand(o.flags, 2), 2, 1,                decode(bitand(t.property, 17179869184), 17179869184,                       ds.frlins_stg, decode(s.lists, 0, 1, s.lists)))),       decode(bitand(ts.flags, 32), 32, to_number(NULL),         decode(bitand(o.flags, 2), 2, 1,                decode(bitand(t.property, 17179869184), 17179869184,                       ds.maxins_stg, decode(s.groups, 0, 1, s.groups)))),       decode(bitand(t.property, 32+64), 0,                decode(bitand(t.flags, 32), 0, 'YES', 'NO'), null),       decode(bitand(t.flags,1), 0, 'Y', 1, '
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值