一、 内存表概念
1、PL/SQL表类似于C语言中的数组。如果要声明一个PL/SQL表,要先定义该表类型,然后在声明属于该类型的变量。
2、理论上,数据库数据空间有多大,我们的内存表就可以存储多大的数据,就是说他和我们的物理表是相同的,我们可以把物理表的数据完全拷贝到内存表中。
3、PL/SQL表的元素没有必要按照特定的次序排列,因为他们不是象数组那样连续存储在内存中,元素可以按照任意键值进行插入。
4、PL/SQL表的键值(KEY)没有必要是顺序的。表所占用的内存并不依赖于键所使用的数值。
二、 表的属性
count:返回PL/SQL表中行的当前数目。
delete:删除表中的行。
exists:如果指定的表项在表中存在那么返回ture。
first:返回表中第一行的索引。
last:返回表中最后一行的索引。
next:返回表中指定行的下一行的索引。
prior:返回表中指定行的上一行的索引。
三、案例
-- Created : 8/16/2012 3:00:03 PM
-- Purpose : 内存表使用
--1.建立表类型
CREATE OR REPLACE TYPE ty_obj IS OBJECT ( p_empno VARCHAR2 (50)
, p_ename VARCHAR2 (50)
, job VARCHAR2 (50)
);
--2.建立数组
CREATE OR REPLACE TYPE ty_objtab IS TABLE OF ty_obj;
--3.建立函数
CREATE OR REPLACE FUNCTION func_info RETURN ty_objtab
IS
v_ty_objtab ty_objtab := ty_objtab(); --返回内存表
BEGIN
FOR cur IN (SELECT * FROM emp) LOOP
v_ty_objtab.extend;
v_ty_objtab(v_ty_objtab.count) := ty_obj(cur.empno,cur.ename,cur.job);
END LOOP;
RETURN v_ty_objtab;
END func_info;
--4.测试1
--查询出所有结果
SELECT * FROM TABLE(func_info);
--查询出部分结果
DECLARE
vtab ty_objtab;
BEGIN
vtab := func_info;
dbms_output.put_line(vtab(1).p_empno);
END;
--查询结果行数
DECLARE
vtab ty_objtab;
BEGIN
vtab := func_info;
dbms_output.put_line(vtab.count);
END;
--综合操作
DECLARE
vtab ty_objtab;
BEGIN
vtab := func_info;
FOR i IN 1..vtab.count LOOP
--修改内存表中数据
vtab(i).p_ename := vtab(i).p_ename || 'mm';
--读取内存表中数据
dbms_output.put_line(vtab(i).p_ename);
--测试表明 操作成功
END LOOP;
END;
分享到:
相关推荐
Delphi内存表使用(TdxMemData,TVirtualTable,TFDMemTable)例子.演示在Delphi上使用内存表存储数据的例子。TdxMemData 属于DevExpressVcl控件,TVirtualTable属于UniDAC控件,TFDMemTable属于FireDAC控件。经过测试...
下面我们将详细介绍如何使用Delphi的内存表来实现这一功能。 首先,了解主从表的概念。在数据库设计中,主从表(也称为父子表或主键-外键关系)是指两个表之间的一种关联,其中一张表(主表)包含唯一标识记录的...
演示在Delphi上使用内存表存储数据的例子。TdxMemData 属于DevExpressVcl控件,TVirtualTable属于UniDAC控件,TFDMemTable属于FireDAC控件。经过测试证明,TFDMemTable性能最好!
SELECT type,--Clerk的...sum(awe_allocated_kb)as awe_Allocated_kb,--开启AWE后使用的内存 sum(shared_memory_reserved_kb)as sm_Reserved_kb,--共享的保留内存 sum(shared_memory_committed_kb)as sm_Committed_k
总的来说,SAP HANA的内存使用分析需要从多个角度进行,包括行表和列表的内存使用情况,列存储的内存管理,以及多租户数据库容器和操作系统环境的内存使用情况等。通过这些角度的分析,可以全面了解SAP HANA系统的...
在"WebApplication1"这个项目中,可能涉及到的是一个Web应用的内存表操作实践,可能涵盖了如何在Web环境中创建和使用内存表,以及如何通过编程语言(如Java、Python或C#)与数据库交互,实现内存表的增删改查操作。...
通过理解这个源码,你可以掌握内存表的使用,ReportMachine控件的报表设计,以及如何集成二维码生成技术,从而提升你的DELPHI开发技能。在实际工作中,你可以根据具体需求调整和扩展这个模板,以满足各种复杂的标签...
9. **初始化与恢复**:为了在重启后初始化内存表,可以使用`--init-file`选项指定一个SQL脚本,该脚本会在MySQL启动时运行,将数据写入内存表。 10. **数据丢失处理**:为应对数据丢失,可以编写脚本在查询前检查表...
开发者应该首先阅读这个文件来了解如何正确使用memSQL内存表控件。 3. **key.txt** - 这可能是许可证密钥文件,用于验证和激活控件的使用权。如果没有这个文件,控件可能只能在受限模式下使用,或者需要额外购买才能...
9. **数据同步**:如果需要将内存表的数据与数据库同步,可以使用`ApplyUpdates`方法,这通常涉及`TDataSetProvider`组件来连接数据库。 10. **错误处理和事务管理**:`FDMemTable1`支持事务处理,`Begin...
《C语言内存使用详解——内存管理与调试》 在C语言编程中,理解内存的使用是至关重要的。本文将深入探讨内存的管理、调试以及使用规则,特别关注堆和栈的区别。 1. 堆与栈的区别 1.1 栈区 栈是程序运行时由编译器...
内存表使用Memory引擎,数据存储在内存中,系统重启后数据丢失,而临时表则可以使用多种引擎,包括InnoDB和MyISAM,其数据存储在磁盘上,但生命周期仅限于创建它的会话(session)。 临时表的特性如下: 1. **创建...
内存检漏检测算法可能会包括以下策略:记录分配和释放的内存块信息,使用哈希表或关联数组存储这些信息;在分配内存时增加标记,用于追踪内存的来源;或者利用运行时库提供的信息,如GNU的malloc库提供的钩子函数。...
内存表使用 ENGINE = MEMORY,普通表使用 ENGINE = INNODB。其中,vote_record_memory 表使用了哈希索引(KEY `index_id` (`user_id`) USING HASH),vote_record 表使用了 B-Tree 索引(KEY `index_user_id` (`user...
- 分配初始内存节点,并将其`IsUse`设置为0,表示未使用。 - 设置`Par_Size`、`Par_No`和`Addr`的值。 - 返回指向链表头部的指针。 2. **初始化首次适应算法的空闲分区链表** (`InitFP()`函数) - **功能**: ...
- **多链表结构**:所有类型的内存块链表组合起来形成了一个多链表结构,这样可以根据实际需求快速找到合适的内存块。 #### 内存分配与释放算法 - **内存分配算法**: - 当需要分配内存时,首先确定所需内存的...
### ORACLE内存结构与表空间知识 #### 一、Oracle的服务方式 Oracle提供了三种不同的服务方式,每种方式都有其特定的应用场景和内存管理特点。 ##### 1. 专用服务器 (Dedicated Server) - **服务流程**:当...
这种算法在动态分配内存时,旨在优化内存的使用,减少碎片并最大化空间利用率。 可变分区最佳适应算法是一种动态内存分配策略,其主要目标是在分配内存给新作业时,找到当前所有空闲分区中最小但仍能满足作业需求的...
### Java内存机制学习和使用 #### 一、Java内存机制概览 Java内存管理是Java开发人员必须掌握的核心概念之一。良好的内存管理不仅能够提升应用性能,还能避免常见的内存泄漏问题。本文旨在深入探讨Java内存机制,...
4. **数据结构优化**:选择合适的数据结构以减少内存占用,例如使用哈希表替代数组,当需要频繁查找时,哈希表的效率更高。 5. **内存对齐**:确保数据在内存中按特定的边界对齐,可以提高CPU访问速度,减少不必要...