oracle 数组长度

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 数组长度相关的知识,希望对你有一定的参考价值。

declare type a is array(5) of number(2);
begin
for i in a.length
loop
DBMS_OUTPUT.PUT_LINE(a(i));
end loop;
end;这段代码怎么改

declare
type array_type is array(5) of number(2);
a array_type := array_type(5,5,5,5,5);
begin
for i in 1..a.count loop
DBMS_OUTPUT.PUT_LINE(a(i));
end loop;
end;
/
记住,你的数组最大长度是5,我给你初始化了5个数据。如果我给你初始3个数据,那么你的数组实际长度就是3,如果你a(4)就会数组越界,下面是一种扩展数组的方法:
declare type array_type is array(5) of number(2);
a array_type := array_type();
begin
for i in 1..5 loop
a.extend;
a(i) := i;
end loop;

for i in 1..a.count loop DBMS_OUTPUT.PUT_LINE(a(i));
end loop;
end;
/

当然你也可以用 a.extend(5) 直接扩展5个(这个扩展长度不能大于5哦)

你有个地方理解错了type a is array(5) of number(2);这句只是声明了一个数据类型(数组类型)
此时你的a和number(2)是一个意思
a array_type := array_type(5,5,5,5,5);这个才是定义一个数组变量a
参考技术A declare type array_type_a is table of number index by binary_integer;
a array_type_a;
begin
for i in 1..a.count loop
DBMS_OUTPUT.PUT_LINE(a(i));
end loop;
end;

求指点:VARCHAR的长度设置对读取效率影响大吗?

如题,表示新人不是太明白,在PHPADMIN进行字段建立时,必须输入长度,不知道mysql本身是不是也是这样.由于设定的长度不能超出,但是我储存的文本长短不一.只好往大的范围填写.但是就是担心长度设置的太大,会不会非常影响日后的使用效率?我再重点说明一下,我这里说长度的并不是储存进去的实际数据长度,而是指字段类型设置的长度.我想问这个长度的设置,对读取的影响效率大不大?
求前辈们指点一二

mysql 的varchar和oracle 的varchar2 一样,都是可变长的字符类型。也就是说定义的长度过多,不会有太多的影响。它使用的存储空间,只取决于你实际存放的字符的长度。 参考技术A 个人觉得不会有什么影响,如果你的存储长短不一,建议你设置大一些。设置大一些,短的话会自动保存你存入数据的长度;如果设置短了,存储大的存不进。

以上是关于oracle 数组长度的主要内容,如果未能解决你的问题,请参考以下文章

求指点:VARCHAR的长度设置对读取效率影响大吗?

随机生成密码,长度6-10位、不可包含特殊字符、必须包含大写、小写和数字,oracle 如何实现?

java中怎么判断字符数组的长度

动态扩展数组的长度

动态扩展数组长度(自定义)

oracle数组 拼到sql的in子句中去