Oracle concepts中,表中的一行最大1000 column,每255 column会分成一个row piece,下面使用实验来证明它

创建一个1000 column的行

SQL> begin

2    execute immediate 'create table t(col1 char)';

3     for i in 2 .. 1000 loop

4         execute immediate 'alter table t add (col'||i||' char)';

5    end loop;

6  end;

7  /

PL/SQL procedure successfully completed.

结果可以创建。再创建一个1001 column的行

SQL> drop table t;

Table dropped.

SQL> begin

2    execute immediate 'create table t(col1 char)';

3     for i in 2 .. 1001 loop

4         execute immediate 'alter table t add (col'||i||' char)';

5    end loop;

6  end;

7  /

begin

*

ERROR at line 1:

ORA-01792: maximum number of columns in a table or view is 1000

ORA-06512: at line 4

结果创建到1001个时报错

接下来创建一个260 column的行的表,再insert数据,dump出来看一行是不是分为两个row piece

SQL> drop table t;

Table dropped.

SQL> begin

2    execute immediate 'create table t(col1 number)';

3     for i in 2 .. 260 loop

4         execute immediate 'alter table t add (col'||i||' number)';

5    end loop;

6  end;

7  /

PL/SQL procedure successfully completed.

insert into t values(

1,

2,

3,

4

(省略)

253,

254,

255,

256,

257,

258,

259,

260);

SQL> select dbms_rowid.rowid_relative_fno(rowid),dbms_rowid.rowid_block_number(rowid) from t;

DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID) DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)

------------------------------------ ------------------------------------

16                                  406

SQL> alter system dump datafile 16 block 406;

System altered.

查看DUMP文件

[oracle@myora10 udump]$ more myora10_ora_31787.trc

/d01/app/oracle/admin/myora10/udump/myora10_ora_31787.trc

Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

ORACLE_HOME = /d01/app/oracle/product/10.2.0

System name:    Linux

Node name:      myora10

Release:        2.6.9-67.ELsmp

Version:        #1 SMP Fri Nov 16 12:48:03 EST 2007

Machine:        i686

Instance name: myora10

Redo thread mounted by this instance: 1

Oracle process number: 17

Unix process pid: 31787, image: oracle@myora10 (TNS V1-V3)

(省略)

block_row_dump:

tab 0, row 0, @0x1be1

tl: 927 fb: -----L-- lb: 0x1  cc: 255

col  0: [ 2]  c1 07

col  1: [ 2]  c1 08

col  2: [ 2]  c1 09

col  3: [ 2]  c1 0a

col  4: [ 2]  c1 0b

col  5: [ 2]  c1 0c

(省略)

col 253: [ 3]  c2 03 3c

col 254: [ 3]  c2 03 3d

tab 0, row 1, @0x1bc9

tl: 24 fb: --H-F--- lb: 0x1  cc: 5

nrid:  0x04000196.0

col  0: [ 2]  c1 02

col  1: [ 2]  c1 03

col  2: [ 2]  c1 04

col  3: [ 2]  c1 05

col  4: [ 2]  c1 06

end_of_block_dump

End dump data blocks tsn: 16 file#: 16 minblk 406 maxblk 406

从上面的DUMP文件可以看出,一个row分成了两个row piece

tab 0, row 1, @0x1bc9

tl: 24 fb: --H-F--- lb: 0x1  cc: 5

nrid:  0x04000196.0

看上面的fb,标示为H和F,H代表Head piece of row ,F代表First data piece

nrid:  0x04000196.0        下一个row piece的地址

tab 0, row 0, @0x1be1

tl: 927 fb: -----L-- lb: 0x1  cc: 255

看上面的fb,标示为L,L代表Last data piece

链接(jason_wang2002的个人空间)

http://space.itpub.net/8745319/viewspace-573079

[本帖最后由 jason_wang2002 于 2009-3-19 14:41 编辑]

oracle 最大一行,一行最大column数和row piece-概念相关推荐

  1. Java一行一行的读文件和简单的写文件

    读 在java的实验作业中,有一个是从我们的txt文件中读取矩阵.其中数与数之间是用\t隔开.行与行之间是用\n跳过.本人java学艺不精,所以我只有自行询问度娘.得知了一个可以从文件中一行一行的读取 ...

  2. python 写入excel_一行一行整理EXCEL表太麻烦,试试python脚本,1秒写入数据

    最近工作中,要整理数据,本来是以sql脚本录入,但是id.barcode等数据不好整理,因为这几个字段要唯一. 所以想到用EXCEL表整理数据,再导入数据库中. 整理的过程中,发现EXCEL一行一行的 ...

  3. python快速整理excel_一行一行整理EXCEL表太麻烦,试试python脚本,1秒写入数据

    最近工作中,要整理数据,本来是以sql脚本录入,但是id.barcode等数据不好整理,因为这几个字段要唯一. 所以想到用EXCEL表整理数据,再导入数据库中. 整理的过程中,发现EXCEL一行一行的 ...

  4. 教大家python读取一行一行文件内容的方法

    Python中readline()每次读取文件中的一行,需要使用永真表达式循环读取文件.但当文件指针移动到文件的末尾时,依然使用readline()读取文件将出现错误.因此程序中需要添加1个判断语句, ...

  5. html、css、js、react、vue 文字一行一行显示出来

    前端时间在做 年报,就不难涉及到 年报 具有的几大特性: 1.页面滑动特效 2.文字一行一行出现特效 3.页面内动画 等等 这片文章主要展示一下 文字一行一行出现特效 代码(react 为例) 先看效 ...

  6. C语言 一行一行读取文件txt

    参考:怎么用c语言实现读取一个txt文件里的数据 要按行读出来 打开文件 fopen("需要打开的路径") 然后使用fgets函数读取行 #include <stdio.h& ...

  7. java 中实现一行一行地读文件和一行一行地追加写文件

    一行一行地追加写文件 FileWriter fw = new FileWriter("文件名"); BufferedWriter bw = new BufferedWriter(f ...

  8. c语言一行一行的读取txt文件

    工作中做的项目,经常需要读取一些脚本,就是一些txt文件,用python读取很简单,但是我们很多工具也是用c/c++语言写的,用c的话读取文件我一般是按照如下的方式: while(fscanf(pFi ...

  9. Oracle 计算两日期间隔月数

    Oracle 计算两日期之间月数 实际应用中,有时候会计算两日期间隔天数.月数.如直接相减,可能会出问题,如: select 202110-202106 from dual; 结果为:4 看似正确,但 ...

  10. oracle sql%rowcount 返回影响行数

    sqlserver中,返回影响行数是:If @@RowCount<1 oracle中,返回影响行数是:If sql%rowcount<1 例: sqlserver: AS BEGIN Up ...

最新文章

  1. 缓存初解(五)---SpringMVC基于注解的缓存配置--web应用实例
  2. Ubuntu开机自动启动script(2)
  3. redis高级-------2
  4. 谷歌2D景观转3D风景大片,无惧复杂光线与遮挡
  5. xwpftemplate的时间设置_数据导出生成word附件使用POI的XWPFTemplate对象
  6. 在banana pi 上测试 《S2A》Snap/Scratch to Arduino
  7. python统计文本单词总数_python统计文本文件内单词数量的方法
  8. jmeter配置元件之计数器
  9. 关于Request.params的知识收藏
  10. php 右键下拉菜单,iview通过Dropdown(下拉菜单)实现的右键菜单
  11. 计算机四级网络工程师考过指南
  12. linux攻防比赛_浅谈网络攻防大赛中的Linux服务器的加固
  13. matlab竞赛论文模板,数学建模竞赛论文模板.doc
  14. 对LNode*与LinkLinst等价却不等用的理解
  15. matlab编译后方交会,后方交会MATLAB程序实习报告.docx
  16. 如何成就一个小而美的存储科技公司?
  17. Grain Timers and Reminders
  18. html js更新数据不刷新页面,用javascript实现无刷新更新数据
  19. 基于UBAT工具的试验性应用
  20. node.js 安装详细步骤如下(win 版)

热门文章

  1. 文件上传---利用表单提交
  2. 广义线性模型(GLM, Generalized Linear Model)
  3. 程序员的职业素养---转载
  4. 小黑相关预搞书籍杂志等
  5. Visual Studio 开发环境安装与配置
  6. 如何判断数据库中是否已经存在某个临时表?
  7. 20190605每日一句你的态度决定了你的人生高度
  8. 190415每日一句
  9. 黑马程序员 Python学习笔记之 判断(if)语句
  10. Atitit 人脸识别 眼睛形态 attilax总结 可以按照大小来分类。。或者按照形态来分类 眼睛的类型、分类。包括杏眼,狐狸眼,铜铃眼,龙眼,丹凤眼和小鹿眼等等。 月牙眼 笑起来。。吊梢