oracle中varrays有什么作用?主要应用在哪里?

gahade 2010-04-07 11:16:25
看了下oracle中的集合,有pl/sql表,嵌套表和varray,不知道他们的主要应用在哪里,各能发挥什么作用.因为之前搞sqlserver,就只有临时表和表变量,望各位高手不吝赐教!
...全文
195 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjz748305545 2010-04-08
  • 打赏
  • 举报
回复
。。。让更多高手来解答,我顶
iqlife 2010-04-07
  • 打赏
  • 举报
回复
3、varray
和以前的语言兼容,发展历程相关,
tangren 2010-04-07
  • 打赏
  • 举报
回复
1、pl/sql表:是pl/sql代码中的“表”,只存在应用运行期间(内存里),类似“数组”,稀疏的,大小可以动态增长,可以有负下标,但不能存储在数据库表中。

2、嵌套表:可以在表列中存储,稀疏的,可以删除单独记录,不能有负下标,大小可变。

3、varray:与pl/sql区别是可以在表列中存储,是密集的,不能删除单独记录,不能有负下标,固定大小的集合。
gahade 2010-04-07
  • 打赏
  • 举报
回复
谢谢楼上的回贴!

为什么oracle引入三种集合,可能我没理解,觉得有一种pl/sql表就差不多了。这三种集合在oracle开发中各有什么不同于其他集合的作用,谢谢
tangren 2010-04-07
  • 打赏
  • 举报
回复
推荐一本电子书,上面讲解得较详细
《精通Oracle.10g.Pl.SQL编程》
http://222.177.79.137:10002/200811/jtOracle%2010g%20PL%20SQLbc.rar
tangren 2010-04-07
  • 打赏
  • 举报
回复
实现数组功能,如:
DECLARE
--声明一个1..20的数组类型,可存number型元素
TYPE atype IS VARRAY(20) OF NUMBER;
--声明该数组类型的一个变量
a atype;
BEGIN
a := atype(); --初始化
FOR i IN 1 .. 10 LOOP
a.extend; --扩展数组
a(i) := i; --使用数组元素
END LOOP;
END;
/


更多可参考:
http://jb51.net/article/19496.htm
mei0612 2010-04-07
  • 打赏
  • 举报
回复

pl/sql表即联合数组
如果集合的物理尺寸是静态的,且要在表中使用集合,那就使用varray。varray最接近如Java、C、C++或C#等编程语言中的数组。
如果由于运行时的可变性,物理尺寸未知,且要在表中使用集合,那就使用嵌套表。嵌套表类似于编程语言中的列表和bag.
如果由于运行时的可变性,物理尺寸未知,但不在表中使用集合,那就使用pl/sql。pl/sql适用于标准的编程解决方案,如使用图(map)和集(set)
mei0612 2010-04-07
  • 打赏
  • 举报
回复
pl/sql表只是pl/sql中定义的一种结构,并不是真实可访问的表,

varry和嵌套表:
如果集合的物理尺寸是静态的,且要在表中使用集合,那就使用varray。varray最接近如Java、C、C++或C#等编程语言中的数组。
如果由于运行时的可变性,物理尺寸未知,且要在表中使用集合,那就使用嵌套表。嵌套表类似于编程语言中的列表和bag.

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧